Ap-скрипт Google Листов Indexof - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь использовать 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 = Джон Доу

индекс = -1

Я ожидаю, что значение = 1, так как Джон Доу является вторым значением в массиве.

1 Ответ

1 голос
/ 12 июня 2019

Значения, полученные с помощью getValues(), - это двумерный массив.Поэтому, чтобы использовать indexOf(), измените его следующим образом.Пожалуйста, подумайте об этом как об одном из нескольких ответов.

В этой модификации 2-мерный массив преобразуется в 1-мерный массив с помощью map(), и используется 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

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...