【问题标题】:Google Sheets Ap-script Indexof谷歌表格应用脚本索引
【发布时间】:2019-06-11 21:59:44
【问题描述】:

我正在尝试使用 IndexOf,当值在数组中时,它会一直返回 -1(不匹配)。我是新手,所以我不确定为什么它不起作用。我的最终目标是返回匹配数据的第一个实例的行号。

var lookup_array = sales_sheet.getRange(1,1,3,1).getValues();
var index = lookup_array.indexOf(newsheet_name);

lookup_array = [[account_manager], [john doe], [john doe]]

newsheet_name = john doe

索引 = -1

我希望值 = 1,因为 john doe 是数组中的第二个值。

【问题讨论】:

  • 我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,我深表歉意。到时候,可以问一下你现在的情况吗?我想学习解决你的问题。
  • 您的问题有什么我可以做的吗?如果我的回答对您的情况没有用。我必须道歉并修改它。如果您能合作解决您的问题,我很高兴。我想考虑一下解决方案。

标签: javascript arrays multidimensional-array google-apps-script google-sheets


【解决方案1】:

getValues() 检索到的值是二维数组。所以为了使用indexOf(),请进行如下修改。请认为这只是几个答案之一。

本次修改中,二维数组通过map()转换为一维数组,使用indexOf()

修改脚本:

var newsheet_name = "john doe";
var lookup_array = sales_sheet.getRange(1,1,3,1).getValues(); // [["account_manager"], ["john doe"], ["john doe"]]
var res = lookup_array.map(function(e) {return e[0]}).indexOf(newsheet_name);
Logger.log(res) // 1

参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多