以下是一个示例代码,展示了如何按对象数组进行分组:
// 原始对象数组
const data = [
{ id: 1, name: 'Alice', group: 'A' },
{ id: 2, name: 'Bob', group: 'B' },
{ id: 3, name: 'Charlie', group: 'A' },
{ id: 4, name: 'David', group: 'C' },
{ id: 5, name: 'Eve', group: 'B' },
];
// 创建一个空对象,用于存储分组后的结果
const groupedData = {};
// 遍历原始数组
data.forEach(item => {
// 获取当前对象的分组属性值
const group = item.group;
// 如果分组属性值在 groupedData 中不存在,则创建一个空数组
if (!groupedData[group]) {
groupedData[group] = [];
}
// 将当前对象添加到对应分组的数组中
groupedData[group].push(item);
});
// 打印分组后的结果
console.log(groupedData);
运行以上代码,将得到以下输出:
{
A: [
{ id: 1, name: 'Alice', group: 'A' },
{ id: 3, name: 'Charlie', group: 'A' }
],
B: [
{ id: 2, name: 'Bob', group: 'B' },
{ id: 5, name: 'Eve', group: 'B' }
],
C: [
{ id: 4, name: 'David', group: 'C' }
]
}
以上代码通过遍历原始数组,根据对象的分组属性值将对象分组,并将分组后的结果存储在一个新的对象中。如果分组属性值在新对象中不存在,则创建一个空数组,并将当前对象添加到对应分组的数组中。最终得到了按对象数组进行分组的结果。
上一篇:按对象数组分组并计算键值的总和