向后循环遍历数组时出错
Error while looping backwards through an array
我开始做一些事情,很早就遇到了障碍,试图用我对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]);
}
}
让我们在月球上行走并再次尝试反向循环。因为我不好,我很坏,嘿嘿嘿,哎呀。它适用于:)
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]);
}
}
那么为什么哦,为什么不反过来工作并且总是引发错误"(类型错误: 无法从未定义读取属性"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]);
}
}
想想你应该为"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中的数组出错
- 从函数中的函数返回数组时出错
- 角度 2 - 推送到要用 *ngFor 显示的数组时出错
- 完成ajax调用数组的循环,而不是在某个调用出错时中断
- 将jquery ajax请求推入数组时出错
- 比较javascript中的数组时出错
- 在for循环中设置断点会导致在数组上使用原型时出错
- 从AngularJS中的数组中删除元素时出错
- 尝试将数组从内容脚本发送到弹出脚本时出现 Chrome 扩展程序时出错
- 在 JavaScript 中遍历大型数组而不超时时出错
- 使用 Mongoose 和 Node 将数据插入数组时出错
- 使用 Lodash 合并数组,为什么结果是重复的数组值?,我的代码在哪里出错
- 在javascript中创建多维数组,自定义函数中出错
- 从数组查询获取对象 JSON 值时出错
- 在数组中选择对象时出错
- Jade从路由器传递对象/数组时出错
- 使用Mongoose更新数组中的特定对象时出错
- 如何避免在访问JavaScript数组中的元素时出错
- '应为表达式'初始化多维数组时出错
- Highchart没有't显示图形:在序列中添加javascript数组时出错