IndexOf在数组中找不到值

时间:2019-06-12 19:04:04

标签: google-apps-script

我有两个变量,一个包含一个硬编码的日期,另一个具有一个带有单个值的数组(用于测试)。数组中的值与硬编码值匹配,但是我得到的返回值为-1(不匹配)。

python3 file.py

日志结果: Cur_date = 2018年7月31日星期二00:00:00 GMT-05:00

var_date_array = [2018年7月31日星期二00:00:00 GMT-05:00]

var_date_index = -1

我希望var_date_index返回0,这是数组中唯一的结果,并且日期匹配。我猜想它与[]有关,但是我对此并不陌生。 TIA

1 个答案:

答案 0 :(得分:0)

我刚刚测试了您的代码,结果是

 Logger.log(date_array)

返回

“ 2018年7月31日星期二00:00:00 GMT + 02:00”

同时

 Logger.log(date_array.map(function(e) {return e[0]}))

返回

“ T”

date_array.map(function(e) {return e[0]})

没有给您数组元素

sales_sheet.getRange(index,9,last_row_cur,1).getValues()[0]

因为映射功能正在尝试从数组中检索数组元素。但就您而言

date_array 

是一个数组元素。您实际上是在尝试访问一个元素的元素(而不是数组的元素),这就是导致错误的原因。

如果您只是将最后一行从更改为

var date_index = date_array.map(function(e) {return e[0]}).indexOf(cur_date);

var date_index = date_array.indexOf(cur_date);

它将起作用。

但是,如果要使用映射,则应将date_array定义为:

var date_array = sales_sheet.getRange(index,9,last_row_cur,1).getValues();