数组对象按某个属性分类
时间: 2023-09-30 20:12:32 浏览: 95
可以使用 JavaScript 的 reduce() 方法来按照某个属性分类数组对象。
例如,有如下数组对象:
```javascript
const students = [
{ name: "Alice", grade: "A" },
{ name: "Bob", grade: "B" },
{ name: "Charlie", grade: "A" },
{ name: "David", grade: "C" },
{ name: "Eve", grade: "B" }
];
```
现在想要按照 grade 属性分类,可以使用 reduce() 方法来实现:
```javascript
const result = students.reduce((acc, cur) => {
acc[cur.grade] = acc[cur.grade] || [];
acc[cur.grade].push(cur);
return acc;
}, {});
console.log(result);
/* Output:
{
A: [
{ name: "Alice", grade: "A" },
{ name: "Charlie", grade: "A" }
],
B: [
{ name: "Bob", grade: "B" },
{ name: "Eve", grade: "B" }
],
C: [
{ name: "David", grade: "C" }
]
}
*/
```
在 reduce() 方法中,第一个参数是一个累加器(acc),它最初是一个空对象 {}。第二个参数是当前元素(cur)。
在每次迭代中,检查当前元素的 grade 属性是否存在于累加器中。如果不存在,则将该属性添加到累加器中,并将其值设置为空数组。然后将当前元素添加到相应的数组中。
最后,返回更新后的累加器。
阅读全文