es6通过Map对象对数组去重

本文介绍了如何利用ES6的Map数据结构,结合filter方法,轻松实现数组去重。不再需要嵌套循环,提升代码效率。

关于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);

这样就可以达到数组去重的效果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值