Google Sheets脚本索引

时间:2019-06-11 21:59:44

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

我正在尝试使用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 =约翰·杜伊

index = -1

由于john doe是数组中的第二个值,所以我期望value = 1。

1 个答案:

答案 0 :(得分:1)

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

在此修改中,map()将2维数组转换为1维数组,并使用了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

参考文献: