You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

合并22个各含1000元素的数组丢失数据,求修复方案

问题原因及修复方案

核心问题

你代码里的final_result是在while循环内部声明的,每次循环都会重新创建一个空数组,前21次循环添加的数据全部被丢弃,最后只保留了最后一次请求返回的结果(也就是你看到的502个元素)。

修复步骤

  1. 将final_result的声明移到循环外部,确保整个循环过程中使用的是同一个数组实例。
  2. 每次循环将当前页的result元素追加到final_result中。

修改后的完整代码

var pages = 22;
var page = 0;
// 把final_result移到循环外,初始化一次即可
var final_result = [];

while (page != pages) {
  sails.log(`Getting page number ${page} of ${pages}`)

  var identifier_axios = {
    method: "get",
    url: `https://${address}///page=${page}`,
    proxy: false,
  };

  var res_identifier = await axios(identifier_axios);
  var page_identifier = res_identifier.data.resourceList;

  var result = page_identifier.map(({ identifier }) => identifier); 

  console.log("result length", result.length, "of page", page);
  // 追加当前页的结果到final_result
  final_result.push(...result);
  // 也可以用你之前的方式:Array.prototype.push.apply(final_result, result);

  page++;
}

console.log("final_result",final_result);
console.log("final_result length", final_result.length)

额外验证建议

可以检查每次循环的result.length是否确实为1000,确认接口返回的数据是否符合预期,避免接口本身返回不足1000条的情况。

内容的提问来源于stack exchange,提问作者WhackTheWise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 23:06:10