Google Script Map 函数不返回值

时间:2021-02-17 16:02:26

标签: javascript google-apps-script google-sheets

不久前我拼凑了一些代码,它运行良好,但现在发生了一些变化,它不再按预期工作。我有下面的代码行,用于返回第一次找到匹配值的位置。我对此很不满意,但我能说的最好的是 map 函数遍历数组的每个元素并根据调用的函数返回一个值。在这种情况下,我相信该函数被称为 e。

来自日志: lookup_array(仅前 3 个元素)我还删除了每个数组的第一个元素以外的数据,因为这是相关数据。

[

[AC, , , , ,]
, [AC, , , , , ]
, [AC, , , , , ]

...]

newsheet_name = AC

在这种情况下,所需的输出将为 0,因为 newsheet_name 匹配此数组中的第一条记录。不幸的是,我得到了 -1 的结果,但不知道为什么。

var index = lookup_array.map(function(e) {return e[1]}).indexOf(newsheet_name);    

1 个答案:

答案 0 :(得分:0)

问题:

您需要返回 e[0] 而不是 e[1]。请记住,JavaScript 索引从 0 开始,您希望获取数组中的第一个元素。

解决方案:

   const lookup_array = [
                        ["AC","","","",""],
                        ["AC","","","",""],
                        ["AC","","","",""],
                        ];
   const newsheet_name = "AC";
   const index =  lookup_array.map(e=>e[0]).indexOf(newsheet_name);
   console.log(index);  

或者如果您不想使用 arrow functions,则将您的解决方案与 e[0] 一起使用:

const index = lookup_array.map(function(e) {return e[0]}).indexOf(newsheet_name);