【问题标题】:Loop an array in Google Apps Scripts在 Google Apps 脚本中循环数组
【发布时间】:2014-05-30 00:48:06
【问题描述】:

我正在尝试为数组编写循环,但出现无效字符串错误。

如果关键字 = "间皮瘤|seo"

function json(keyword) {
  var jsondata = UrlFetchApp.fetch("http://api.grepwords.com/lookup?apikey=carterq="+keyword);
  var object = Utilities.jsonParse(jsondata.getContentText());

  var results = Array("Error", "Error", "Error", "Error");

  for (var i = 0; i < object.length; i++) {

  results[0] = object[0].cpc;
  results[1] = object[0].cmp;
  results[2] = object[0].lms;
  results[3] = object[0].m1;
  }

  return results;
}

有什么想法吗?

【问题讨论】:

    标签: javascript arrays loops google-apps-script


    【解决方案1】:

    您的参考错误来自这一行:

    var jsondata = UrlFetchApp.fetch("http://api.grepwords.com/lookup?apikey=carter&q="+keyword);
    

    根据您的上述代码,这是您使用“关键字”的唯一时刻。你确定它返回正确的信息?如果确实如此,您是否考虑过您的循环?

    假设您的 var object = Utilities.jsonParse(jsondata.getContentText()); 返回:

      var object = [
          {cpc: 'test1', cmp: 'test2', lms: 'test3', m1: 'test4'},
          {cpc: 'test5', cmp: 'test6', lms: 'test7', m1: 'test8'},
          {cpc: 'test9', cmp: 'test10', lms: 'test11', m1: 'test12'}
      ];
    

    我们使用你的循环:

      for (var i = 0; i < object.length; i++) {
    
      results[0] = object[0].cpc;
      results[1] = object[0].cmp;
      results[2] = object[0].lms;
      results[3] = object[0].m1;
      }
    

    你知道你从不使用'i'吗?并且您在每次循环后用相同的内容覆盖结果中的内容?你确定你想要这个吗?

    function somefunc() {
    
      var object = [
          {cpc: 'test1', cmp: 'test2', lms: 'test3', m1: 'test4'},
          {cpc: 'test5', cmp: 'test6', lms: 'test7', m1: 'test8'},
          {cpc: 'test9', cmp: 'test10', lms: 'test11', m1: 'test12'}
      ];
      var results = Array("Error", "Error", "Error", "Error");
    
      if (object[0] != undefined)
      {
      results[0] = object[0].cpc;
      results[1] = object[0].cmp;
      results[2] = object[0].lms;
      results[3] = object[0].m1;
      }
    
      for (var i = 0; i < object.length; i++) {
    
      results[0] = object[0].cpc;
      results[1] = object[0].cmp;
      results[2] = object[0].lms;
      results[3] = object[0].m1;
      }
    
      return results;
    }
    
    console.log(somefunc());

    【讨论】:

    • 哪一部分给了你无效的 json 字符串? :P 更精确一点。
    猜你喜欢
    • 2023-03-16
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多