【问题标题】:What two array indexes mean when placed one after another?一个接一个放置的两个数组索引是什么意思?
【发布时间】:2016-08-12 10:21:06
【问题描述】:

我只是在学习循环,无法获得以下脚本的这一部分 - values [i][0] 在这里是什么意思? (发现代码in this answer,描述为停止条件)。是数组的结束和开始吗?

function getFirstEmptyRowByColumnArray() { 
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var values = ss.getRange('A:A').getValues(); 
  var i = 0; 

  while (values[i] && values[i][0] !== "") { 
    i++; 
  } 

  return i + 1;
}

【问题讨论】:

  • values 可能是一个数组数组。
  • getValues() 方法返回一个二维数组。内部数组代表每一行。内部数组的每个元素都代表电子表格单元格中的一个值。
  • @SandyGood 谢谢。我在示例代码中应用于 Google 表格的说法对吗? values[i] 指的是工作表的整行,values[i] [0] 指的是一个单元格(i 表示行号,0 表示列)?
  • 是的,没错。
  • @Sandy好的谢谢!

标签: javascript arrays google-apps-script while-loop


【解决方案1】:

values 是一个多维数组。所以第一个索引指向一个数组,第二个索引给出该数组的元素。您也可以将其想象为具有行和列的矩阵。第一个索引是行,第二个是列。

如果您想了解更多关于 Javascript 中的多维数组的信息,可以查看以下问题的答案:How can I create a two dimensional array in JavaScript?

【讨论】:

  • 感谢您的回答。我在示例代码中应用于 Google 表格的说法对吗? values[i] 指的是工作表的整行,values[i] [0] 指的是一个单元格(i 表示行号,0 表示列)?
  • @VictorZhurbin 是的,调用 ss.getRange('A:A').getValues() 返回该数据结构。
  • 太快了 :) 再次感谢您!
【解决方案2】:

每个数组索引运算符(方括号,又名计算成员访问,又名bracket notation)访问单个数组元素。因此,如果您看到它们是串联的,那么您正在处理一个数组数组(否则会导致错误)。例如:

var arr = [
   [1, 2, 3], // inner array
   [4, 5, 6], // inner array
];
arr[0]         // [1, 2, 3]
arr[0][1]      // 2
arr[0][1][2]   // error: 2 is not an arry

【讨论】:

    猜你喜欢
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多