那如果在js中我有一个list我要把它根据组内元素的属性A分组,对每个A属性值不同的元素,分别把他们放在listA,listB,listC....里,怎么操作
时间: 2023-10-06 22:11:42 浏览: 42
在JavaScript中实现根据组内元素的属性A分组可以使用`reduce()`方法,具体操作如下:
```javascript
const myArray = [
{ A: 1, B: 2 },
{ A: 2, B: 3 },
{ A: 1, B: 4 },
{ A: 3, B: 5 },
{ A: 1, B: 6 },
{ A: 2, B: 7 },
{ A: 3, B: 8 },
{ A: 1, B: 9 },
];
const groupedArray = myArray.reduce((groups, item) => {
const groupKey = `list${item.A}`;
if (!groups[groupKey]) {
groups[groupKey] = [];
}
groups[groupKey].push(item);
return groups;
}, {});
console.log(groupedArray);
```
输出的结果为:
```javascript
{
list1: [
{ A: 1, B: 2 },
{ A: 1, B: 4 },
{ A: 1, B: 6 },
{ A: 1, B: 9 }
],
list2: [
{ A: 2, B: 3 },
{ A: 2, B: 7 }
],
list3: [
{ A: 3, B: 5 },
{ A: 3, B: 8 }
]
}
```
这样就将原数组按照属性A的值分成了若干组,并将每组的元素分别放入了对应的数组中。