我正在使用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