我正在使用google网站列表项。Google Sites Listitem
我已经能够通过列进行迭代,并把所有的列标题的一个阵列用下面的代码。
//Global
var page = getPageByUrl(enter URL here)
var name = page.getName();
function getInfo() {
var columns = page.getColumns();
//Get Column Names
for (var j in columns) {
var cName =columns[j].getName();
columnList.push(cName);
}
}
现在我想能够得到listitem的每一行,并把它放在它自己的数组中。
我可以添加变量
function getInfo() {
var columns = page.getColumns();
var listItems = page.getListItems();//new variable
//Get Column Names
for (var j in columns) {
var cName =columns[j].getName();
columnList.push(cName);
}
}
现在,我有可变输出[列表项,列表项,列表项,列表项] 这样我就可以使用。长度并获得4 回报所以现在我知道我有4行数据,所以根据我的需要我需要4个数组。
这里的小感叹,不是交易的编码员,而是代码作为想要成为需求的先驱。
作为JS编码器的我的一个朋友让我看到了这个代码的功能。随着我添加的记录器。
for (var i in listItems) {
if (listItems.hasOwnProperty(i)) {
item = listItems[i];
for (var x = 0; x < columnList.length; x++) {
attrib = item.getValueByName(columnList[x]);
Logger.log("Logging value of get list page get value by name = " + columnList[x] + " " + attrib);
}
}
}
这使总码
var name = page.getName();
var listItems = page.getListItems();
var listCount = listItems.length
var listList = [];
var columns = page.getColumns();
var name = columns[0].getName();
var item, attrib = 0;
var columnList = [];
Logger.log(listItems);
Logger.log(name + " was last updated " + page.getLastUpdated());
Logger.log(name + " was last edited " + page.getLastEdited());
var listCount = 0;
//Get Column Names
for (var j in columns) {
var cName =columns[j].getName();
columnList.push(cName);
}
Logger.log(columnList);
// Get index of Due Date
var dueDateValue = columnList.indexOf("Due Date");
Logger.log("The index of due date is " + dueDateValue);
for (var i in listItems) {
if (listItems.hasOwnProperty(i)) {
item = listItems[i];
for (var x = 0; x < columnList.length; x++) {
attrib = item.getValueByName(columnList[x]);
Logger.log("Logging value of get list page get value by name = " + columnList[x] + " " + attrib);
}
}
}
}`
原谅上面的代码,因为它已经有点素描垫努力工作,这一点的。 我后面上了解了一下正在发生的事情在这里
for (var i in items) { // This is for each item in the items array
if (items.hasOwnProperty(i)) {
如果项目是一个数组,我们如何可以使用已经拥有自己的财产?这不属于一个对象吗?数组是否成为对象?
我的问题是两类折叠。
类别#1 hasOwnProperty发生了什么? -Does阵列成为一个对象,从而可以传递给.hasOwnProperty值
类别#2 这是采取从列表项的值和填充数组 的唯一方法 - 如果是,有一些方式来界定,所以我可以每行传递到它自己的阵列 - 如果不是,为什么它与hasOwnProperty工作,为什么没有在本例中没有它的工作如下
for (var i in listItems) {
for (var y = 0; y < columnList.length; y++) {
item = listItems[i];
listList = item.getValueByName(columnList[x]);
Logger.log("Logging my version of list naming " + listList);
}
在哪我得到一个“无效的参数:名称(第41行”回应。突出显示
listList = item.getValueByName(columnList[x]);
不在寻找讲义,但我期待进一步了解hasOwnPropertyValue。
我目前的理解是,hasOwnValue与原型(模糊理解)有关,在这种情况下似乎不是这种情况,它必须依赖于我早先通过混淆描述的对象。
为了澄清我想: 我想有自己的数组listItems中的每一行,所以我可以比较的指标值排序为我目前的列标题是日期
["Project", "Start Date" , "End Date"]
任何及所有非常感谢这位JS初学者2周的帮助。
我认为你应该首先压缩你的问题。相信我,没有人会读到 – Sajidkhan 2014-11-22 02:44:09
我认为整个思考过程应该包括在内以理解问题的演变。结果的最终愿望和途中的主要障碍。 – JForgie 2014-11-22 03:05:04
为什么使用hasownproperty时,在使用in或带有可数据的非数据原型成员的数据对象时,可以使用http:// stackoverflow。com/questions/3010840/loop-through-array-in-javascript/3010848#3010848 – HMR 2014-11-22 03:14:05