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

如何在TypeScript中对嵌套对象求和并生成新对象

合并结构一致的对象,对应子键数值相加

给定两个结构完全匹配的对象 Set_1 和 Set_2,二者都包含 Key_1、Key_2 键,且这两个键下的子键也完全相同。需要将两个对象中对应位置的子键数值相加,生成新对象 Set_3。

原对象示例:

const Set_1 = {
  "Key_1": {
    "Sub_Key_1": 110,
    "Sub_Key_2": 72,
    "Sub_Key_3": 182
  },
  "Key_2": {
    "Sub_Key_1": 110,
    "Sub_Key_2": 72,
    "Sub_Key_3": 182
  }
};

const Set_2 = {
  "Key_1": {
    "Sub_Key_1": 50,
    "Sub_Key_2": 72,
    "Sub_Key_3": 112
  },
  "Key_2": {
    "Sub_Key_1": 30,
    "Sub_Key_2": 40,
    "Sub_Key_3": 70
  }
};

期望输出对象:

const Set_3 = {
  "Key_1": {
    "Sub_Key_1": 160,
    "Sub_Key_2": 144,
    "Sub_Key_3": 304
  },
  "Key_2": {
    "Sub_Key_1": 140,
    "Sub_Key_2": 112,
    "Sub_Key_3": 252
  }
};

实现方案(JavaScript):

通过逐层遍历对象键,累加对应位置的数值即可实现需求:

function mergeAndSum(obj1, obj2) {
  const result = {};
  // 遍历外层键(Key_1、Key_2)
  for (const key of Object.keys(obj1)) {
    result[key] = {};
    // 遍历子键并累加数值
    for (const subKey of Object.keys(obj1[key])) {
      result[key][subKey] = obj1[key][subKey] + obj2[key][subKey];
    }
  }
  return { Set_3: result };
}

// 调用函数生成结果
const result = mergeAndSum(Set_1, Set_2);
console.log(result.Set_3);

说明:

  • 先创建空对象存储结果,再遍历外层键为每个键初始化子对象。
  • 遍历子键时,直接将两个对象对应子键的数值相加,赋值给结果对象的对应位置。
  • 该逻辑适用于任意层级结构一致的对象,只要键匹配就能完成累加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:51:20