关于js数组去重的方法有很多,我以前居然用的是嵌套两层for循环来加一层if来判断数组里面的重复数据,当我了解了es的方法之后,才发现我的方法是有多蠢(笑哭)。
首先关于数组去重我们先简单介绍一下es6新增的一个Map对象。
Map对象
Map是一组键值对的结构,具有极快的查找速度,我们通过键名就可以快速找到值。
Map对象的常用方法
const res=new Map()
//通过set方法来设置键值对存储数据
res.set("a",1)
res.set("a",2)//这样子会覆盖上面的值
//通过get方法来根据键名获取对应的值
res.get("a")//输出2
//通过has方法来判断是否存在键名
res.has("a")//输出true
res.has("b")//输出false,没有设置过键名为b的数据
我们采用Map对象来对数组去重要用到set和has方法
通过filter和Map来对数组进行去重
const map=new Map();
const arry=[1,2,1,"1","2","1"];
let res= arry.filter(item=>!map.has(item)&&map.set(item,1))
console.log(res);
这样就可以达到数组去重的效果
本文介绍了如何利用ES6的Map数据结构,结合filter方法,轻松实现数组去重。不再需要嵌套循环,提升代码效率。

476

被折叠的 条评论
为什么被折叠?



