在循环内调用JSON组件时遇到问题(Google脚本)

时间:2018-06-29 01:33:26

标签: javascript google-apps-script

我一直在用脚本编写算法,以通过API检索来填充来自Google工作表的缺失数据。成功检索包含相关数据的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详细信息的变量是为了保护c所允许的。

1 个答案:

答案 0 :(得分:0)

您可能正在循环中访问数组之外​​的内容。将限制更改为jsonBusDeducs.length

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

请记住,您必须使用<,而不是<=。数组索引从0length-1