向后循环数组时出错

Mun*_*key 0 javascript arrays google-sheets google-apps-script

我开始做一些事情,并且很早就遇到了障碍,试图以我对 javascript 的有限知识尽早思考解决问题的方法。

我确定这是一件简单而烦人的事情,但我似乎看不出是什么导致了错误。

只是在编写一个脚本,最终使用谷歌脚本显示来自谷歌电子表格的数据。但是,是的,似乎无法反向循环特定值。

请在下面查看我的注释代码,并提前致谢。

简单地尝试向前循环遍历数组。决定去了解基础,因为我很难过。作品。记录器显示我上升了 1

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=0;i < values.length;i++){
Logger.log([i]);

}
}
Run Code Online (Sandbox Code Playgroud)

与上面相同,除了我试图反向遍历数组。工作,但到目前为止我们只问它我们在循环的哪个部分。

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=values.length;i > 0 ;i--){
Logger.log([i]);

}
}
Run Code Online (Sandbox Code Playgroud)

准时系好你的裤子,因为我们正在向数组请求数据,向前循环。有用。它返回数组中每个条目的整行

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=0;i < values.length;i++){
Logger.log([i]+" " + values[i]);

}
}
Run Code Online (Sandbox Code Playgroud)

让我们月球漫步并再次尝试反向循环。因为我很坏,我很坏,嘻嘻,哇哦。有用 :)

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=values.length;i > 0 ;i--){
Logger.log([i]+ " " + values[i]);

}
}
Run Code Online (Sandbox Code Playgroud)

穿上我的大男孩裤子后,我正准备在我的阵列中记录一个条目,

向前循环。万岁,裤子保持干净,结果如预期。

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=0;i < values.length;i++){
Logger.log([i]+" " + values[i][16]);

}
}
Run Code Online (Sandbox Code Playgroud)

那么为什么哦,为什么不能反向工作并且总是引发错误“(TypeError:无法从未定义中读取属性“16”。(第69行,文件“代码”)关闭”第69行是(Logger.log([i]+ " " + values[i][16]);)在下面的代码中.

function getInfo() {
var sheet = SpreadsheetApp.openById("ID HERE").getSheetByName("Sheet1");
var values = sheet.getDataRange().getValues();


for(i=values.length;i > 0 ;i--){
Logger.log([i]+ " " + values[i][16]);

}
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*iaz 5

想想你应该为你的“for”循环使用的索引。当您向后循环数组时,您希望从最后一个索引开始,并以第一个索引结束。

a您可能知道,数组的最后一个索引是a.length - 1,而第一个是0。您希望将它们都包含在循环中,因此您要向后循环的代码是:

for (i = values.length - 1; i >= 0; i--) {
    Logger.log(i + " " + values[i][16]);
}
Run Code Online (Sandbox Code Playgroud)