数组对象去重js

大家都知道,在进行数组去重时es6提供了new Set方法实现快速去重, 但是当我们需要根据数组内对象某个属性去重时,这个函数已经不能满足我们的业务需求。接下来我讲解一下如何根据对象属性进行快速去重。

const arr = [{num: 1}, {num: 3}, {num: 4}, {num: 1}, {num: 4}];

// 创建一个map函数实例 Map构造函数原理是用一个object {} key名用来存储传递进去的数据 

const map = new Map();

//主要用到Map内置函数 has: 是否存在某个属性 set: 设置属性

const res = arr.filter(item => {!map.has(item.num) && map.set(item.num, "value")})

console.log(res)

//结果为[{num: 1}, {num: 3}, {num: 4}]

// 逻辑过程为 创建一个新的map实例 对数组进行过滤 回调函数中判断如果map中没有当前属性 则设置属性, 否则不符合过滤条件, 这样过滤出来的数据就只有没有重复的数据啦


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容