js 查找数组对象中id相同的元素,把他们放到新数组对象中
js 查找数组对象中id相同的元素,把他们放到新数组对象中
可以使用JavaScript中的Array.prototype.reduce方法来实现这个功能。以下是一个示例代码:
const items = [
{ id: 1, name: '张三',age:'16' },
{ id: 2, name: '李四',age:'20' },
{ id: 1, name: '张三',age:'17' },
{ id: 3, name: '王二',age:'21' },
{ id: 1, name: '张三',age:'18' }
];
const groupedById = items.reduce((acc, item) => {
const existingGroupWithId = acc.find(group => group.id === item.id);
if (existingGroupWithId) {
existingGroupWithId.items.push(item);
} else {
acc.push({ id: item.id, items: [item] });
}
return acc;
}, []);
console.log(groupedById);
这段代码会输出一个新数组,其中的每个对象都包含一个id和一个items数组,items数组包含所有具有相同id的元素。在这个例子中,输出将是:
[
{
"id": 1,
"name": "张三",
"items": [
{
"id": 1,
"name": "张三",
"age": "16"
},
{
"id": 1,
"name": "张三",
"age": "17"
},
{
"id": 1,
"name": "张三",
"age": "18"
}
]
},
{
"id": 2,
"name": "李四",
"items": [
{
"id": 2,
"name": "李四",
"age": "20"
}
]
},
{
"id": 3,
"name": "王二",
"items": [
{
"id": 3,
"name": "王二",
"age": "21"
}
]
}
]