arrays - 使用 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 方法,但我会在每个响应中返回一个新数组。
解决方案
为了使您的代码“动态”,您可以在 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);
}
推荐阅读
- html - 将 fontawesome 图标与导航栏中的文本垂直对齐
- typescript - npm 包的声明文件
- passwords - John The Ripper '未加载密码哈希'(见常见问题解答)
- javascript - 我对异步操作的理解正确吗?
- locust - 如何在 locust 中使用 css 选择器和 xpath 提取器?
- javascript - 打字稿,联合类型,元素隐含一个“任何”
- flutter - Flutter:弹出屏幕栈中的所有底层页面
- email - 在垃圾邮件中发送的电子邮件
- android - 如何在带有文本的列表视图中显示从 API 下载的图像
- alfresco - 如何在 Alfreso 中选择包含特定子项的文档?