Функция не выводит sh элемент из той же строки в скрипте Google - PullRequest
1 голос
/ 20 января 2020

У меня есть проблема, когда данные в том же столбце не являются pu sh. Как будто он получает первый столбец правильно, но я сбрасываю обратно до 0, затем получаю первый элемент во втором столбце, и то же самое относится и к другим столбцам.

Примером данных будет: hubs = [Manila, QC] new_values ​​= [[Манила, J, U], [Q C, P, B], [Pasay, L, M]]

Подробности должны возвращаться: details = [[Манила, J, U] , [Q C, P, B]]

Но прямо сейчас вывод:

[[Pasay, J, U], [Q C, P, B ]]

function getEmails() {
  var id = "1043Hz7L2txTWNPN4wO5l3f6KpPPmgwmLgUyqhHwNeYs"
  var officer_sheet = SpreadsheetApp.openById(id).getSheetByName("officer")
  var new_values = officer_sheet.getRange(1,1,officer_sheet.getLastRow(), officer_sheet.getLastColumn()).getValues();

  var hubs = GetHubsToSend();

  var details = [];
  for (var i = 0, j = 0; i< new_values.length, j< hubs.length ;i++, j++){
       if(new_values[i][0] = hubs[j])          
       {
       details.push(new_values[i]);
       }
      }
  Logger.log(details);
  return details;
  };

1 Ответ

1 голос
/ 20 января 2020

Используйте вложенные для l oop - в настоящее время ваши l oop проверяет new_array[n][0] to hubs[n] - потому что i всегда == j

Также, чтобы проверить на равенство, используйте == или === ... потому что = является оператором присваивания, и в этом случае всегда также будет верно для условия if

Код ниже выполняет то, что вы ожидаете

var hubs = ['Pasay', 'QC'];
var new_values = [['Manila', 'J', 'U'], ['QC', 'P', 'B'], ['Pasay', 'L', 'M']]
var details = [];
for (var j = 0; j < hubs.length; j++) {
    for (var i = 0; i < new_values.length; i++) {
        if (new_values[i][0] == hubs[j]) {
            details.push(new_values[i]);
        }
    }
}
console.log(details);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...