Проблема вызова компонента JSON внутри цикла (Google Scripts) - PullRequest
0 голосов
/ 29 июня 2018

Я пишу алгоритм в сценариях, чтобы заполнить недостающие данные из листа Google из поиска API. После успешного извлечения объекта JSON, содержащего соответствующие данные, я пытаюсь вызывать определенные части, и когда это делается статически, это не проблема! Однако, когда я пытаюсь вызвать одну и ту же часть внутри цикла, она выдает ошибку ДАЖЕ, хотя журналы в порядке. Вот фрагмент кода:

var jsonEmpSuper = JSON.parse(UrlFetchApp.fetch(urlBase.concat(urlEmp).concat(jsonInternalId.id).concat(urlBank), options));
var jsonBusDeducs = JSON.parse(UrlFetchApp.fetch(urlBase.concat(urlDeduc), options));

Logger.log(jsonBusDeducs[1].name);             //works!

for (var j = 0;j <= 10; j++) {                 //"TypeError: Cannot read property "name" from undefined."

  Logger.log(j);                               //works!
  Logger.log(jsonBusDeducs[j].name);           //works!
  Logger.log(sheet.getRange(i,1).getValue());  //works!

  if (jsonBusDeducs[j].name == sheet.getRange(i,1).getValue()) {

    Logger.log('Yo, ive spotted a match!');    //works, correctly spots matches?!?!?!

    sheet.getRange(i,18).setValue(jsonBusDeducs[j].id);

  }

Переменные, определяющие детали url и api, сохраняются для конфиденциальности.

1 Ответ

0 голосов
/ 29 июня 2018

Вы, вероятно, обращаетесь за пределами массива в вашем цикле. Измените ограничение на jsonBusDeducs.length:

for (var j = 0; j < jsonBusDeducs.length; j++)

И помните, что вы должны использовать <, а не <=. Индексы массива идут от 0 до length-1.

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