// 假设有一个对象数组,每个对象都有一个id属性
let objects = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 1, name: 'Eve' }
];
// 使用reduce方法按id分组
let groupedById = objects.reduce((acc, obj) => {
const key = obj.id;
if (!acc[key]) acc[key] = [];
acc[key].push(obj);
return acc;
}, {});
// 将分组后的对象数组转换成数组的数组
let groupedArrays = Object.values(groupedById);
console.log(groupedArrays);
结果显示
[
[ { id: 1, name: 'Alice' }, { id: 1, name: 'Charlie' }, { id: 1, name: 'Eve' } ],
[ { id: 2, name: 'Bob' } ],
[ { id: 3, name: 'David' } ]
]