向后遍历数组时出错
Error while looping backwards through an array
我开始着手做某事,但实际上很早就遇到了障碍,试图以我对 javascript 的有限知识尽早思考解决问题的方法。
我确定这很简单而且很烦人,但我似乎看不出是什么导致了错误。
只是在编写脚本以使用 google 脚本最终显示 google 电子表格中的数据。但是,是的,似乎无法反向循环特定值。
请在下面查看我的注释代码并提前致谢。
简单尝试向前循环数组。
决定去基础,因为我被难住了。作品。记录器显示我上升了 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]);
}
}
请准时系好裤子,因为我们正在向数组请求数据,
向前循环。有用。它returns数组中每个条目的整行
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]);
}
}
让我们来月球漫步,然后再次尝试反向循环。
因为我很坏,我很坏,嘻嘻,哇。它有效:)
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:无法从未定义中读取 属性“16”。(第 69 行,文件 "Code")关闭”
第 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]);
}
}
考虑应该为 'for' 循环使用的索引。当您向后循环数组时,您希望从最后一个索引开始,并以第一个索引结束。
数组的最后一个索引 a
,您可能知道,是 a.length - 1
,而第一个索引是 0
。您希望将它们都包含在循环中,因此向后循环的代码是:
for (i = values.length - 1; i >= 0; i--) {
Logger.log(i + " " + values[i][16]);
}
数组从索引 0 开始,因此数组中最后一个索引的长度为 -1,因此:
for(i=values.length;i > 0 ;i--){
应该是
for (i=values.length-1; i >= 0; i--){
我开始着手做某事,但实际上很早就遇到了障碍,试图以我对 javascript 的有限知识尽早思考解决问题的方法。
我确定这很简单而且很烦人,但我似乎看不出是什么导致了错误。
只是在编写脚本以使用 google 脚本最终显示 google 电子表格中的数据。但是,是的,似乎无法反向循环特定值。
请在下面查看我的注释代码并提前致谢。
简单尝试向前循环数组。 决定去基础,因为我被难住了。作品。记录器显示我上升了 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]);
}
}
请准时系好裤子,因为我们正在向数组请求数据, 向前循环。有用。它returns数组中每个条目的整行
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]);
}
}
让我们来月球漫步,然后再次尝试反向循环。 因为我很坏,我很坏,嘻嘻,哇。它有效:)
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:无法从未定义中读取 属性“16”。(第 69 行,文件 "Code")关闭”
第 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]);
}
}
考虑应该为 'for' 循环使用的索引。当您向后循环数组时,您希望从最后一个索引开始,并以第一个索引结束。
数组的最后一个索引 a
,您可能知道,是 a.length - 1
,而第一个索引是 0
。您希望将它们都包含在循环中,因此向后循环的代码是:
for (i = values.length - 1; i >= 0; i--) {
Logger.log(i + " " + values[i][16]);
}
数组从索引 0 开始,因此数组中最后一个索引的长度为 -1,因此:
for(i=values.length;i > 0 ;i--){
应该是
for (i=values.length-1; i >= 0; i--){