首页 > 解决方案 > 使用 Google Apps 脚本将获取的 API 中的对象数组与分页合并

问题描述

我正在获取一个 URL。完整的响应分布在五页上。

我正在遍历每个页面,这些页面返回给我一个对象数组(如果我错了,请纠正我):

[{item_1=foo, item_2=bar, item_3=foobar, value_1=XX}, {item_1=bar, item_2=foo, item_3=barfoo, value_1=XX},etc...]

我想整合所有响应,就像它是一大堆对象一样。

到目前为止,我写了这个:

   for (i = 1; i <= total_pages; i++) {

    var rawResponse = UrlFetchApp.fetch(
    'url',
    {
      method: 'GET'
    })

   response[i] = JSON.parse(rawResponse);

    }

  var g = response[1].concat(response[2], response[3],response[4],response[5]);

g包含所需的输出;但是,如您所见,这不是动态的。我该如何解决这个问题?我可以使用 push 方法,但我会在每个响应中返回一个新数组。

标签: arraysobjectgoogle-apps-script

解决方案


为了使您的代码“动态”,您可以在 for 循环中为每个页面使用 concat 函数。您的代码的可能修改可能如下所示,其中result变量将包含所有结果:

var result = [];

for (var i = 1; i <= total_pages; i++) {
  var rawResponse = UrlFetchApp.fetch(
    'url',
    {
      method: 'GET'
    }
  );

  var current = JSON.parse(rawResponse);
  result = result.concat(current);
}

推荐阅读