我开始研究某些事情,并在早期遇到障碍,试图通过我对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]);
}
}
与上面相同,除了我试图反过来通过数组。 但是到目前为止我们只是问它我们所处的循环的哪一部分。
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]);
}
}
准时绑好裤子,因为我们要求阵列提供数据, 循环前进。有用。它返回数组中每个条目的整行
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]);
}
}
让它进行月球漫步并再次尝试反向循环。
因为我很糟糕,我很糟糕,heee heeeh,oww。它有效:)
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]);
}
}
穿上我的大男孩裤子之后,我正准备在我的阵列中记录一个条目,
向前循环。华友世纪,裤子保持干净,结果如预期。
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]);
}
}
那么为什么哦为什么不能以相反的方式反向工作并且总是出错
“(TypeError:无法从undefined中读取属性”16“。(第69行,文件”Code“)Dismiss”
第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]);
}
}
答案 0 :(得分:4)
考虑一下你应该用于'循环'的索引。向后循环数组时,您希望从最后一个索引开始,以第一个索引结束。
您可能知道,数组a
的最后一个索引是a.length - 1
,而第一个索引是0
。您希望将它们都包含在循环中,因此向后循环的代码是:
for (i = values.length - 1; i >= 0; i--) {
Logger.log(i + " " + values[i][16]);
}
答案 1 :(得分:4)
数组从索引0开始,因此数组中的最后一个索引的长度为-1,所以:
for(i=values.length;i > 0 ;i--){
应该是
for (i=values.length-1; i >= 0; i--){