Решено преобразовать комментарий в ответ:
2D Массив значений
getValues()
метод возвращает двумерное Array
значений из Range
к которому следует обращаться через схему values[row][column]
.Ваш цикл for
увеличивает только первое измерение, то есть строку, и никогда не обращается к значению через ссылку на столбец.Таким образом, вы заканчиваете тем, что передаете метод Array
в indexOf()
.
Модификация
Вы можете добавить второй цикл for
для итерации по каждому изэлементы Array
значений, а также модифицируйте первый цикл, чтобы сделать его более гибким на тот случай, если вам когда-нибудь понадобится цикл по нескольким строкам:
for (var x = 0; x < cur_data.length; x++) {
for (var y = 0; y < cur_data[x].length; y++) {
Logger.log(cur_data[x][y])
Logger.log(price_data2.indexOf(cur_data[x][y]));
}
}
Сравнение
indexOf()
метод выполняет поиск с помощью сравнения строгого равенства , и здесь начинается забавная часть.Поскольку Array
является по существу объектом , те же правила сравнения, которые применяются к объектам, применяются также к Array
объектам.Это означает, что нет двух одинаковых объектов (взгляните на таблицу результатов сравнения).
Полезные ссылки
getValues()
ссылка ; indexOf()
MDN ссылка ; - Сравнения равенства Руководство ;
- Сравнения стол ;