Задать вопрос
@Guard737

Почему не работает условие IF?

Добрый день!
Стоит задача с двух разных таблиц (двух страниц) выбрать номер заказа, и сравнить между собой, при совпадении номеров заказов внести изменение в строку с совпадающим номером.
И так, вот что я имею.

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('Нет совпадений');
        }
      }
    }


Я забираю в одномерный (важно) массив данные с обоих страниц, и пытаюсь их сравнить по средством цикла в цикле, однако результатом на каждое сравнение получаю "Нет совпадений", хотя так же из лога консоли видно, что совпадения есть.
Т.е. другими словами, у меня не срабатывает условие
if (id_rassulka_zakaza[i]==id_zakaz_zakaza[z])

Не могу понять, что я делаю не так.
Причем, если в качестве сравнения использовать >= или <= условие работает.

В программировании не силен, поэтому просьба дать максимально развернутый ответ =)
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
.getValues() даёт не одномерный массив, а массив массивов, даже если это одна ячейка.
[
  ["A1", "B1", "C1"],
  ["A2", "B2", "C2"],
  ["A3", "B3", "C3"]
]

Попробуйте сравнить id_rassulka_zakaza[i][0] и id_zakaz_zakaza[z][0].
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы