使用JavaScript的reduce()方法和Object.keys()方法,将具有相同ID的对象合并成一个对象。
示例代码如下:
const objects = [
{ id: 1, name: 'obj1', value: 10 },
{ id: 2, name: 'obj2', value: 20 },
{ id: 1, name: 'obj3', value: 30 },
{ id: 2, name: 'obj4', value: 40 },
{ id: 3, name: 'obj5', value: 50 }
]
const mergedObjects = objects.reduce((acc, cur) => {
const id = cur.id
if (!acc[id]) {
acc[id] = { ...cur }
} else {
acc[id] = { ...acc[id], ...cur }
}
return acc
}, {})
console.log(mergedObjects)
输出结果为:
{
"1": { "id": 1, "name": "obj3", "value": 30 },
"2": { "id": 2, "name": "obj4", "value": 40 },
"3": { "id": 3, "name": "obj5", "value": 50 }
}
以上代码将具有相同ID的对象合并成一个新对象,并根据ID作为对象的属性名。如果存在多个属性名相同但属性值不同的情况,则会覆盖掉旧行的属性值。
上一篇:按id合并或聚合特定列的值
下一篇:按ID合并行并添加两个观测