在js中我有一个list我要把它根据组内元素的属性A分组,对每个A属性值相同的元素,把它放到相同的组里,怎么操作
时间: 2024-03-13 14:44:47 浏览: 17
可以使用 `reduce` 方法来实现根据属性A对list进行分组的操作,具体实现过程如下:
```javascript
const list = [
{name: 'a', A: 1},
{name: 'b', A: 2},
{name: 'c', A: 1},
{name: 'd', A: 2},
{name: 'e', A: 3},
];
const groupedList = list.reduce((acc, item) => {
const key = item.A;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {});
console.log(groupedList);
// Output:
// {
// 1: [{name: 'a', A: 1}, {name: 'c', A: 1}],
// 2: [{name: 'b', A: 2}, {name: 'd', A: 2}],
// 3: [{name: 'e', A: 3}]
// }
```
在上面的代码中,我们使用 `reduce` 方法将list转换为一个以属性A为key,以相同属性A的元素组成的数组为value的对象。具体来说,我们对于list中的每个元素,都判断它的A属性是否已经在累计结果对象中存在,如果不存在,就创建一个数组,然后将当前元素加入数组中;如果已经存在,就直接将当前元素加入该数组中。最后,我们返回累计结果对象作为分组后的结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)