JavaScript 将列表依据元素的某个属性拆分成多个小列表
时间: 2023-12-14 22:02:02 浏览: 88
可以使用 JavaScript 的 Array.prototype.reduce() 方法来实现这个功能。具体来说,可以按照以下步骤操作:
1. 首先,准备一个空对象,用于存放拆分后的小列表,以及一个用于拆分的属性名称。
```javascript
const data = [{
id: 1,
category: 'A'
}, {
id: 2,
category: 'B'
}, {
id: 3,
category: 'A'
}, {
id: 4,
category: 'C'
}];
const splitBy = 'category';
const result = {};
```
2. 接着,使用 reduce() 方法遍历列表中的每个元素。对于每个元素,我们可以通过获取其指定属性的值,来判断应该将其放在哪个小列表中。
```javascript
data.reduce((acc, item) => {
const key = item[splitBy];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, result);
```
3. 最后,reduce() 方法会返回我们准备的空对象 result,其中包含了按照指定属性拆分后的小列表。可以将其输出,以便查看结果。
```javascript
console.log(result);
/*
{
A: [
{ id: 1, category: 'A' },
{ id: 3, category: 'A' }
],
B: [
{ id: 2, category: 'B' }
],
C: [
{ id: 4, category: 'C' }
]
}
*/
```
这样,我们就成功地将列表按照某个属性值进行了拆分。