在Javascript中,可以使用reduce()方法和对象字面量来按唯一属性对数组中的对象进行分组。
首先,假设我们有一个包含多个对象的数组,每个对象都有一个唯一属性,我们想要按照这个属性对数组进行分组。以下是一个示例数组:
var array = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 2, name: 'Eve' }
];
现在,我们想要按照id
属性对数组进行分组。我们可以使用reduce()方法来实现:
var groupedArray = array.reduce(function (acc, obj) {
var key = obj.id;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
在上面的代码中,reduce()方法接受一个回调函数和一个初始值(这里是一个空对象{})。回调函数中的acc
参数表示累加器,它会在每次迭代中保存中间结果。我们使用对象字面量来创建一个空数组,然后将每个对象根据其唯一属性id
分组,并将其添加到对应的数组中。
最后,我们得到了一个以id
属性为键,以分组对象数组为值的新对象groupedArray
。可以通过访问groupedArray
的属性来获取每个分组的对象数组。
以下是上述示例的输出结果:
{
1: [
{ id: 1, name: 'Alice' },
{ id: 1, name: 'Charlie' }
],
2: [
{ id: 2, name: 'Bob' },
{ id: 2, name: 'Eve' }
],
3: [
{ id: 3, name: 'David' }
]
}
这样,我们就成功地按照唯一属性id
对数组中的对象进行了分组。
推荐的腾讯云相关产品:无
参考链接:无
领取专属 10元无门槛券
手把手带您无忧上云