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

JavaScript如何将多个独立数组结果转换为指定格式的单个对象数组

问题原因

你现在的代码有两个核心问题:

  • 存储结果的closestCities被初始化为对象类型,和你需要的数组类型不匹配
  • console.log放在了for循环内部,每筛选到一个符合条件的城市就会打印一次,才会出现多个独立输出的情况,同时你用循环下标j作为对象的键,后续转换也会出现空值隐患。
修改后的代码
// 初始化结果为数组
const closestCities = [];
for (let j = 0; j < results.length; j++) {
  // 保留30英里(48280米)的筛选条件
  if(results[j].distance.value < 48280) {
    const cityDistance = results[j].distance.value;
    const cityName = origins[i];
    // 用push方法往数组末尾追加元素,避免空元素问题
    closestCities.push({
      cityName,
      // 如果需要英里单位,替换为 Math.round(cityDistance / 1609.34) 即可
      cityDistance
    });
  }
}
// 循环结束后统一打印完整的结果数组
console.log(closestCities);
可选优化说明
  • 把原有代码里的var替换为let/const,可以避免变量提升带来的意外作用域问题
  • 如果需要距离单位为英里,直接按注释里的公式做换算即可得到整数英里值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:48:03