如何在Google Apps脚本中索引数组?

时间:2017-02-27 00:49:29

标签: javascript google-sheets google-spreadsheet-api

我正在研究这个项目,我想创建一个显示特定列元素的函数。

现在使用javascript我可以使用

调用数组的任何元素
Array[i]

但由于某种原因,这似乎无法在Google Spreadsheets中发挥作用。

 var MyFunction(A) {
 return A[1];
 }

这个功能什么也没有给我带来任何好处。

EDIt:我解决了。 我使用这个循环时使用了一种双索引:

for (var i=0; i < 37; i++) {
if (A[0][i] < max && A[0][i] != 0) {
var max = A[0][i];
};
};

如果我在电子表格中选择行向量,则[0] [0]是第一个元素。 例如,如果我选择A2:A5作为A,A [0] [0]将给出单元格A2的值! 谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

请改为尝试:

var MyFunction(A) {
 return A[0];
 }

我在这里做的假设是你试图返回索引中的第一个元素。在javascript中,数组索引从0开始而不是1.

答案 1 :(得分:1)

它不会那样工作。您必须先允许访问电子表格,然后通过openById告诉Apps脚本您正在处理哪个电子表格。之后,您现在可以访问数据。这是一个简单的代码段。我使用的是独立模式。可能有其他方法可以做到这一点。

我们将要访问此表。我已经包含了索引号,因此您可以轻松理解:

enter image description here

然后我们创建一个名为fetchValue的函数,它接受2个参数 - 行和列。

我们执行调用main的{​​{1}}函数。

fetchValue

然后我们查看Logs是否返回了索引1,1的值function main(){ Logger.log("the value returned was "+ fetchValue(1,1) ); //returns las vegas } function fetchValue(row,col) { var sheet = SpreadsheetApp.openById("SPREADSHEET_ID_HERE"); var data = sheet.getDataRange().getValues(); return data[row][col]; }

enter image description here

确保传递给las vegas的行和列在范围内,否则会返回错误。