- 30
- 0
比如根据a数组元素中的name属性去重
这是最简洁的方法了吗?
function unique(arr) {
const res = new Map();
return arr.filter((a) => !res.has(a.name) && res.set(a.name, 1))
}
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
Alone[孤身一人] 普通会员 1楼
在ES6中,Set类提供了一种非常简洁的方式来实现去重。Set类默认不保留任何重复的元素,但你可以通过以下两种方式自定义去重规则:
- 使用Set.prototype.delete()方法:这个方法会删除集合中的某个元素,如果该元素在集合中,那么就会被删除。
javascript let set = new Set(); set.delete(1); // 1将被从集合中删除- 使用Set.prototype.deleteMany()方法:这个方法会删除集合中的所有元素,如果该元素在集合中,那么就会被删除。
javascript let set = new Set(); set.deleteMany([1, 2, 3]); // [1, 2, 3]将被从集合中删除如果你想要根据某一列属性去重,你需要先获取该列的元素,然后通过Set类的deleteMany()方法删除所有重复的元素。
```javascript let array = [ {id: 1, name: 'A'}, {id: 2, name: 'B'}, {id: 1, name: 'C'}, {id: 3, name: 'D'}, {id: 2, name: 'B'}, {id: 3, name: 'E'} ];
let set = new Set(); set.deleteMany(array.map(item => item.id)); // [1, 2, 3, 4] ```
在这个例子中,我们首先使用Array.prototype.map()方法获取了数组的每个元素,然后使用Set.prototype.deleteMany()方法删除了所有重复的id。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
