【发布时间】:2013-07-01 05:47:45
【问题描述】:
我之前使用过 MATLAB,存储和访问多维矩阵或数组是轻而易举的事。但是 javascript/AppsScript 让我很头疼。我知道使用 GAS,必须使用 for 循环伪造一个二维数组并将数组放入数组中。
array[i][j] 的形式有时可以正常工作。还有一次我根本无法访问它。
我想我需要快速总结一下 GAS 中数组的工作原理。尤其是多维数组...
话虽如此,这就是我为什么需要回答这个问题的具体情况。
我有这样的事情:(故意将第二行留下一个数据。这些行不一定具有相同的长度。)
A B C D E F G H I
abc 456 789 012 345 678
def 234 567 890 123
ghi 012 345 678 901 234
第一列是文本,其余是数字。基本上,由于这里要说的原因太长,我需要两个数组:一个是第一列的值,另一个是每行的数字“数组”。
类似这样的:
firstArray = [abc, def, ghi];
secondArray = [[456, 789, 012, 345, 678], [234, 567, 890, 123], [012, 345, 678, 901, 234]];
然后要访问它们,我有一个双重 for loop 设置:
for (var ii = 0; ii < firstArray.length; ii++) {
do something with firstArray[ii];
for (var jj = 0; jj < secondArray[ii].length) {
do something with secondArray[ii][jj];
}
}
为了制作第二个数组,我使用了getValues()方法。我做这样的事情:
sh.getRange('B1:1').getValues();
我必须执行“B1:1”,因为我似乎无法为 RANGE 找到 lastColumn() 方法。它仅适用于SHEET。这会导致在使用getValues() 时抓取secondArray 的空白值。
无论如何,我希望我没有说太多。任何反馈表示赞赏。我知道这篇文章的结构很奇怪。
【问题讨论】:
标签: arrays types google-apps-script