已知有多个数组,数组内数据均为对象,要求根据数组内对象的属性,对数组进行分类
时间: 2024-04-16 12:24:22 浏览: 89
如果你希望根据数组内对象的某个属性对数组进行分类,可以使用 reduce() 方法。下面是一个示例:
```javascript
const arr = [
{ name: 'Alice', category: 'A' },
{ name: 'Bob', category: 'B' },
{ name: 'Charlie', category: 'A' },
{ name: 'Dave', category: 'C' },
{ name: 'Eve', category: 'B' }
];
const classifiedArr = arr.reduce((classified, obj) => {
const category = obj.category;
if (!classified[category]) {
// 如果该分类还不存在,创建一个新的数组,并将当前对象放入其中
classified[category] = [obj];
} else {
// 如果该分类已经存在,将当前对象放入对应的数组中
classified[category].push(obj);
}
return classified;
}, {});
console.log(classifiedArr);
```
运行以上代码,你会得到一个以分类为键,对应数组为值的对象。在示例中,对象根据 category 属性被分为三个分类:A、B 和 C。每个分类都包含对应的对象数组。
输出结果:
```javascript
{
A: [ { name: 'Alice', category: 'A' }, { name: 'Charlie', category: 'A' } ],
B: [ { name: 'Bob', category: 'B' }, { name: 'Eve', category: 'B' } ],
C: [ { name: 'Dave', category: 'C' } ]
}
```
这样,你就成功地根据数组内对象的属性对数组进行了分类。你可以根据实际需求调整属性名称和数组结构。
阅读全文