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

JavaScript 如何对嵌套对象数组的属性值求和并合并为单个对象

多层嵌套对象数组属性求和实现方案

你可以直接遍历每个对象的全部分类键实现动态求和,无需提前声明所有分类,实现代码如下:

const result = arr.reduce((acc, curr) => {
  // 遍历当前项的所有一级分类
  Object.keys(curr).forEach(category => {
    // 累加器无对应分类时先初始化
    if (!acc[category]) acc[category] = {}
    // 遍历分类下的所有数值属性累加
    Object.keys(curr[category]).forEach(attr => {
      acc[category][attr] = (acc[category][attr] || 0) + curr[category][attr]
    })
  })
  return acc
}, {})

console.log(result)

实现说明

  • 基于数组reduce方法做累加计算,初始值设为空对象即可,适配后续新增分类的场景
  • 第一层遍历获取所有一级分类名称(preliminary、substructure等),自动适配分类增删
  • 第二层遍历获取每个分类下的数值属性,自动累加对应属性值,无初始值时默认取0计算
    用你提供的示例数组运行后,最终每个分类的contract_value求和结果为1100,planned_value和balance_value求和结果为550,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:48:04