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

如何合并数组中相同id对象的不同属性?

合并数组中同ID对象的实现方法

实现思路

利用reduce遍历数组,以对象的id作为键将数据暂存到临时对象中,遇到相同id时合并所有属性,最后将临时对象的值转换为数组即可得到目标结果。

代码示例

原数据:

let data = [{id:1, value:10}, {id:2, value:20}, {id:1, name:'test'}];

合并逻辑:

const mergedData = Object.values(data.reduce((acc, curr) => {
  // 合并已有对象与当前对象属性,若无对应id则直接存入
  acc[curr.id] = {...(acc[curr.id] || {}), ...curr};
  return acc;
}, {}));

console.log(mergedData);
// 输出结果:[{id:1, value:10, name:'test'}, {id:2, value:20}]

补充说明

如果存在相同id下属性名重复的情况,后出现的属性值会覆盖先出现的,这是展开运算符的默认行为。若需要自定义属性覆盖规则(比如保留先出现的值),可修改合并部分的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 23:54:06