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

如何使用JavaScript将嵌套对象数组合并为单一层级的对象数组

嵌套数组扁平化实现方案

核心需求

将二层嵌套的数组合并为一维对象数组,要求不通过索引访问子数组元素,最终得到结果:[{id:'11223', price:92},{id:'92221', price:90}]


最优实现方案

方案1:使用Array.flat()(现代JS环境推荐)

flat()是ES2019新增的数组原生方法,默认扁平化1层嵌套结构,全程不需要操作数组索引,代码最简洁直观:

// 待处理的嵌套数组
let nestedArray = [
  [
   { 
    id:'11223',
    price:92
    }
  ],
  
  [
   {
    id:'92221',
    price:90
   }
  ]
]

// 直接调用flat()得到目标结果
const finalResult = nestedArray.flat()
console.log(finalResult) // 输出 [{id:'11223', price:92},{id:'92221', price:90}]

如果后续嵌套层级加深,只需给flat()传入对应深度参数即可,比如需要扁平化所有层级传入flat(Infinity)。

方案2:兼容旧环境实现

如果需要兼容不支持flat()的低版本运行环境,可以用reduce搭配concat实现,同样不需要操作索引:

const finalResult = nestedArray.reduce((acc, curr) => acc.concat(curr), [])

结果求和验证

你提供的求和逻辑可以直接使用:

let sum = finalResult.reduce((acc, curr)=> {
return acc+ curr.price
}, 0)
console.log(sum) // 输出182

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:08