- Вы хотите получить индекс элемента, который совпадает с
programDate
, от HeaderFields[0]
, используя indexOf
. - Вы хотите узнать причину вашей текущей проблемываш сценарий.
- Вы хотите добиться этого с помощью Google Apps Script.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Если каждое значение в значениях ячеек "B1: P1" равно только одному, как насчет следующей модификации?
Точка модификации:
В вашем скрипте используется объект даты, потому что когда дата извлекается с помощью getValue()
и getValues()
, полученные значения являются объектом даты. Таким образом, HeaderFields[0].indexOf(programDate)
всегда равен -1
.
Когда ваш скрипт изменяется, как насчет следующей модификации?
Шаблон 1:
В этом шаблонедата извлекается в виде строки с помощью getDisplayValue()
и getDisplayValues()
.
Модифицированный скрипт:
От:
var programDate = range.getValue();
До:
var programDate = range.getDisplayValue();
и
От:
var HeaderFields = dateRange.getValues();
До:
var HeaderFields = dateRange.getDisplayValues();
Шаблон 2:
В этом шаблоне дата извлекается как объект даты, а indexOf
используется путем преобразования объекта даты во время Unix или строковые данные ISO8601.
Модифицированный скрипт:
От:
Logger.log(HeaderFields[0].indexOf(programDate));
До:
Logger.log(HeaderFields[0].map(function(e) {return e instanceof Date ? e.getTime() : e}).indexOf(programDate.getTime()));
или
От:
Logger.log(HeaderFields[0].indexOf(programDate));
До:
Logger.log(HeaderFields[0].map(function(e) {return e instanceof Date ? e.toISOString() : e}).indexOf(programDate.toISOString()));
Примечание:
- При указанных выше модификациях все результаты:
1
.
Ссылки:
Если я неправильно понялВаш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.