【问题标题】:How to index array's in Google Apps Script?如何在 Google Apps 脚本中索引数组?
【发布时间】:2017-02-27 00:49:28
【问题描述】:

我正在做这个项目,我想制作一个显示特定列元素的函数。

现在使用 javascript 我可以使用

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

但由于某种原因,这似乎不适用于 Google 电子表格。

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

这个函数什么也没给我。

编辑:我解决了。 我将此循环与一种双索引一起使用:

for (var i=0; i < 37; i++) {
if (A[0][i] < max && A[0][i] != 0) {
var max = A[0][i];
};
};
如果我在电子表格中选择行向量,

A[0][0] 是第一个元素。 例如,如果我选择 A2:A5 作为 A,A[0][0] 会给我单元格 A2 的值! 感谢您的帮助!

【问题讨论】:

  • 你试过我的代码了吗?是你需要的吗?
  • 我找到了方法!

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


【解决方案1】:

试试这个:

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

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

【讨论】:

    【解决方案2】:

    这样不行。您必须首先允许访问电子表格,然后通过openById 告诉 Apps Script 您正在处理哪个电子表格。之后,您现在可以访问数据。这是一个简单的代码 sn-p 给你。我正在使用独立模式。可能还有其他方法可以做到这一点。

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

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

    我们执行main 函数调用fetchValue

    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];
    }
    

    然后我们查看日志,如果它返回索引 1,1 的值,即las vegas

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

    【讨论】:

    • 感谢您的回答!但我只是在制作一个自定义函数,因此显然不需要将电子表格链接到该函数,至少,我没有这样做就实现了我的目标。
    • wc..供您将来使用; )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多