IndexOf не находит значение в массиве - PullRequest
0 голосов
/ 12 июня 2019

У меня есть две переменные, одна содержит жестко закодированную дату, а другая - массив с одним значением (для тестирования). значение в массиве соответствует жестко закодированному значению, но я получаю возврат -1 (не соответствует).

var cur_date = new Date('7/31/2018') ;
var last_row_cur = sales_sheet.getRange(1,1,20,10).getCell(index+1,10).getValue();        
var date_array = sales_sheet.getRange(index,9,last_row_cur,1).getValues()[1]; 
var date_index = date_array.map(function(e) {return e[0]}).indexOf(cur_date);

Журнал результатов: Cur_date = вт 31 июля 00:00:00 по Гринвичу-05: 00 2018

var_date_array = [вт 31 июля 00:00:00 GMT-05: 00 2018]

var_date_index = -1

Я надеялся, что var_date_index вернет 0, так как это единственный результат в массиве и совпадение дат. Я предполагаю, что это как-то связано с [], но я новичок в этом, поэтому не уверен. ТИА

1 Ответ

0 голосов
/ 21 июня 2019

Я только что проверил ваш код, и в результате

 Logger.log(date_array)

возвращает

«Вт 31 июля 00:00:00 GMT + 02: 00 2018»

, в то время как

 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...