Совпадений не найдено, не работает сравнение IF в google-apps-script
Не могу понять, что делаю не так.
Мне нужно сравнить значение двух ячеек на разных листах.
function rassulka() {
var sheet_rassulka = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('рассылка') // выбираем таблицу с отфильтрованными номерами
var id_rassulka_zakaza=sheet_rassulka.getRange("A5:A").getValues(); //получаем ид заказа в рыссылке
var sheet_zakazu = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('заказы')// обращаемся к таблице с заказами
var id_zakaz_zakaza=sheet_zakazu.getRange("A2:A").getValues(); //получаем ид заказа в заказах
var count_rows_zakazu = sheet_zakazu.getLastRow()-2;// определяем последную ячейку диапазона для работы цикла и сдвигаем на количество не нужных сверху (с учетом того, что массив отсчитывается от 0, а строки от 1)
var count_rows_rassulka = sheet_rassulka.getLastRow()-5;// определяем последную ячейку и сдвигаем на количество не нужных сверху
for(i=0;i<=count_rows_rassulka;i++){
for(z=0;z<=count_rows_zakazu;z++){
Logger.log("Цикл"+i+" Подцикл"+z+" Рассылка="+id_rassulka_zakaza[i]+" Заказ="+id_zakaz_zakaza[z]);
if (id_rassulka_zakaza[i]==id_zakaz_zakaza[z]){
Logger.log("Сработало");
}
else Logger.log('Нет совпадений');
}
}
}
В результате в журнале вижу, что в совпадения есть, однако в условии срабатывает Else и выводится "нет совпадений".
Забегая вперед, getValues дает многомерный массив при условии, что range захватывает больше одной колонки.
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
getRange дает многомерный массив, т.е. сравнивать нужно было id_rassulka_zakaza[i] и id_zakaz_zakaza[z], а id_rassulka_zakaza[i][0] и id_zakaz_zakaza[z][0] При добавлении нулевого индекса все заработало!