一个数组中有多条对象,且部分对象中的name相同,帮我将相同name的用数组区分开,用代码实现
时间: 2024-05-11 18:14:51 浏览: 12
OK,这是一个很简单的问题,可以使用 JavaScript 的 Array.reduce 方法来实现。下面是代码的实现:
```javascript
const arr = [
{ name: "Tom", age: 18 },
{ name: "Jerry", age: 20 },
{ name: "Tom", age: 25 },
{ name: "Kate", age: 22 },
{ name: "Jerry", age: 26 }
];
const result = arr.reduce((acc, cur) => {
const index = acc.findIndex(item => item[0].name === cur.name);
if (index === -1) {
acc.push([cur]);
} else {
acc[index].push(cur);
}
return acc;
}, []);
console.log(result);
```
输出结果如下:
```
[
[
{ name: 'Tom', age: 18 },
{ name: 'Tom', age: 25 }
],
[
{ name: 'Jerry', age: 20 },
{ name: 'Jerry', age: 26 }
],
[ { name: 'Kate', age: 22 } ]
]
```
其中,reduce 方法中的 acc 参数是累加器,cur 参数是当前遍历的元素。acc 初始值为一个空数组,每次遍历时,通过 findIndex 方法查找数组中是否已经存在当前元素的 name,如果存在,则将当前元素添加到对应的内部数组中,否则,新建一个内部数组并将当前元素加入到其中。最后返回累加器 acc 即可。
相关推荐
![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_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)