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

如何对相同id的JSON对象的value值求和并合并数组?

合并两个JSON数组并对相同ID的Value求和

要实现将两个独立JSON数组中拥有相同id的对象的value值求和,并合并为一个数组,核心思路是用映射结构(比如JavaScript的Map或Python的字典)跟踪每个id对应的累计值,遍历两个数组完成累加后,再将映射转换回数组形式。

示例数据

第一个数组:

[
  {"id": 1, "value": 3},
  {"id": 2, "value": 5},
  {"id": 3, "value": 2}
]

第二个数组:

[
  {"id": 1, "value": 2},
  {"id": 2, "value": 3},
  {"id": 4, "value": 2}
]

JavaScript实现

const arr1 = [
  {"id": 1, "value": 3},
  {"id": 2, "value": 5},
  {"id": 3, "value": 2}
];

const arr2 = [
  {"id": 1, "value": 2},
  {"id": 2, "value": 3},
  {"id": 4, "value": 2}
];

function mergeAndSum(arrA, arrB) {
  const resultMap = new Map();

  // 初始化第一个数组的映射
  arrA.forEach(item => {
    resultMap.set(item.id, {...item});
  });

  // 遍历第二个数组,累加相同id的value
  arrB.forEach(item => {
    if (resultMap.has(item.id)) {
      resultMap.get(item.id).value += item.value;
    } else {
      resultMap.set(item.id, {...item});
    }
  });

  // 将映射转换为数组返回
  return Array.from(resultMap.values());
}

const mergedResult = mergeAndSum(arr1, arr2);
console.log(mergedResult);

执行后得到期望结果:

[
  {"id": 1, "value": 5},
  {"id": 2, "value": 8},
  {"id": 3, "value": 2},
  {"id": 4, "value": 2}
]

Python实现

用Python处理时逻辑类似,用字典作为映射:

arr1 = [
    {"id": 1, "value": 3},
    {"id": 2, "value": 5},
    {"id": 3, "value": 2}
]

arr2 = [
    {"id": 1, "value": 2},
    {"id": 2, "value": 3},
    {"id": 4, "value": 2}
]

def merge_and_sum(arr_a, arr_b):
    result_dict = {}
    
    # 处理第一个数组
    for item in arr_a:
        result_dict[item["id"]] = item.copy()
    
    # 处理第二个数组,累加value
    for item in arr_b:
        if item["id"] in result_dict:
            result_dict[item["id"]]["value"] += item["value"]
        else:
            result_dict[item["id"]] = item.copy()
    
    return list(result_dict.values())

merged_result = merge_and_sum(arr1, arr2)
print(merged_result)

方案优势

  • 时间复杂度为O(n+m),n和m分别是两个数组的长度,处理效率高;
  • 支持扩展到多个数组(只需添加更多数组的遍历逻辑);
  • 保留所有出现过的id,不会遗漏任何数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:50:24