我正在尝试使用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。
答案 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