admin 管理员组文章数量: 887629
2024年1月12日发(作者:keyboard98什么意思)
ES6中对象数组根据属性去重的方法
在ES6中,有几种方法可以根据属性对对象数组进行去重。
一、使用Set
1. 将对象数组转化为Set
可以使用Set数据结构来实现数组去重。首先,将对象数组转化为Set,Set会自动去重。
```javascript
const arr =
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }
];
const uniqueArr = [...new Set(arr)];
(uniqueArr);
```
输出:
```javascript
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
```
2. 使用Map
另一种使用Set的方法是,将对象的属性值作为Set的键,然后转化为数组。
```javascript
const arr =
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }
];
const uniqueArr = (new Set((obj => )))
.map(id =>
return (obj => === id);
});
(uniqueArr);
```
输出:
```javascript
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
```
二、使用reduce
使用reduce方法可以根据对象的属性值来去重。
```javascript
const arr =
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }
];
const uniqueArr = ((acc, cur) =>
if (!(obj => === ))
(cur);
}
return acc;
},[]);
(uniqueArr);
```
输出:
```javascript
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
```
三、使用filter
使用filter方法可以筛选出属性值不重复的对象。
```javascript
const arr =
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' }
];
const uniqueArr = ((obj, index, self) =>index === dex((el) =>
===
(uniqueArr);
```
输出:
```javascript
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' }
```
以上是ES6中对象数组根据属性去重的几种方法。根据实际情况选择使用哪种方法,以及优化算法的性能。以上方法也可以根据不同的属性进行去重,只需将代码中的id替换为相应的属性名即可。
版权声明:本文标题:ES6中对象数组根据属性去重的方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705003477h469321.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论