2016-05-10 84 views
0

我是全新的編碼,我不能爲我的生活,通過巫術或谷歌搜索的任何金額,明白爲什麼這個簡單的代碼將無法在谷歌腳本工作:微小For循環將結束我

var student = new Object; // name & student's hours 
var studentNames = new Array; 

for (var i=0; i <= allSheets[1].getLastRow(); i++); { 
    studentNames[i] = allSheets[1].getRange((i+3),1).getValue(); 
    student[studentNames[i]] = allSheets[1].getRange(i+3, 3).getValue(); 
} 

由於一些奇怪的原因,它只是用「null」填充數組studentNames,Object學生將只顯示一個鍵。

如果我繞過了像這樣循環,

studentNames[0] = allSheets[1].getRange(3,1).getValue(); 
studentNames[1] = allSheets[1].getRange(4,1).getValue(); 
studentNames[2] = allSheets[1].getRange(5,1).getValue(); 
studentNames[3] = allSheets[1].getRange(6,1).getValue(); 

一切完美!

如果有人能告訴我我做錯了什麼,我會非常感激。

+0

請檢查這個[URL](http://stackoverflow.com/help)它將有助於提升您的內容質量 –

+0

您是否檢查過allS​​heets [1] .getLastRow()實際返回的內容? – doc

+0

@doc是的,它返回23. – Justin

回答

2

分號去掉你for循環結束

for (var i=0; i <= allSheets[1].getLastRow(); i++); < - 這一個

歡呼:)

+0

哇。你是最棒的!我無法相信在四個小時後我沒有看到...... – Justin

+0

你打敗了我兩分鐘。 – HardScale

0

有第4行的多餘的分號:

for (var i=0; i <= allSheets[1].getLastRow(); i++); { 

應該是:

for (var i=0; i <= allSheets[1].getLastRow(); i++) { 

分號結束關閉for循環的主體,因此塊{...}最終只執行一次。