js数组中,相同id的item数据合并
时间: 2024-09-07 22:01:33 浏览: 36
在JavaScript中,合并具有相同id的数组元素通常涉及对数组进行遍历,并使用一个对象或者Map来合并具有相同id的项。这里提供一个基于对象合并的方法,该方法利用对象属性作为id的唯一标识:
```javascript
function mergeItemsBySameId(array) {
const result = {};
array.forEach(item => {
const id = item.id;
if (result[id]) {
// 如果结果中已有此id,合并数据
result[id] = { ...result[id], ...item };
} else {
// 否则,添加新对象
result[id] = item;
}
});
// 将对象转换回数组
return Object.values(result);
}
// 示例
const items = [
{ id: 1, name: 'Item1', value: 'A' },
{ id: 2, name: 'Item2', value: 'B' },
{ id: 1, name: 'Item1 Updated', value: 'A Updated' }
];
const mergedItems = mergeItemsBySameId(items);
console.log(mergedItems);
```
这个函数`mergeItemsBySameId`接受一个数组`array`作为参数,并创建一个空对象`result`。它遍历数组,对于每个元素,检查`result`中是否已存在相同id的条目。如果存在,它将当前元素的属性合并到已存在的对象中。如果不存在,它将创建一个新的对象并将其添加到结果对象中。最后,函数通过`Object.values`将结果对象的值转换为数组,并返回这个数组。
阅读全文