es6数组去重的方法是什么插图

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

第一种:利用Set对象和数组的Array.from方法

const newArr = Array.from(new Set(arr));

代码示例:

在这里插入图片描述

打印运行后的结果

在这里插入图片描述

简单来说,第二种方法比第一种还简单。同样来简单解释一下。

  • Set是ES6新提供的数据结构,类似于数组,但是本身没有重复值。

  • Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

所以set结合Array.from同样可以达到数组去重的效果。不过需要注意的是,主流浏览器像Chrome,Firfox,Opera,Safari,包括微软的Edge,都是支持的,但是唯独IE系列不支持。

第二种:利用Set+扩展运算符 …

第三种办法可以说是更简单

const newArr = [...new Set(arr)];

代码示例:

在这里插入图片描述
打印后运行的结果
在这里插入图片描述

这就是利用ES6新特性达到数组去重的三种办法,这三种办法有个共同的好处就是代码简洁,对于undefined和NaN也同样可以达到去重的效果~~

第三种: 利用Map对象和数组的filter方法

function unique(arr) {
    const res = new Map();
    return arr.filter((a) => !res.has(a) && res.set(a, 1))
}

代码示例:

在这里插入图片描述

打印后的结果

在这里插入图片描述
通过打印我们发现,确实实现了我们想要的效果。那么下面简单来解释一下。

  • Map对象是ES6提供的一个新的数据结构,其中has的办法是返回一个布尔值,表示某个值是否存在当前的Mp对象之中,set的办法是给Map对象设置key/value。

  • 2filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

所以说,Map对象结合filter方法可以达到数组去重的效果~

【推荐学习:javascript高级教程

以上就是es6数组去重的方法是什么的详细内容,更多请关注亿码酷站其它相关文章!


es6数组去重的方法是什么
—–文章转载自PHP中文网如有侵权请联系ymkuzhan@126.com删除

下载声明:
  • 本站资源如无特殊说明默认解压密码为www.ymkuzhan.com建议使用WinRAR解压;
  • 本站资源来源于用户分享、互换、购买以及网络收集等渠道,本站不提供任何技术服务及有偿服务,资源仅提供给大家学习研究请勿作它用。
  • 赞助本站仅为维持服务器日常运行并非购买程序及源码费用因此不提供任何技术支持,如果你喜欢该程序,请购买正版!
  • 版权声明:
  • 下载本站资源学习研究的默认同意本站【版权声明】若本站提供的资源侵犯到你的权益,请提交版权证明文件至邮箱ymkuzhan#126.com(将#替换为@)站长将会在三个工作日内为您删除。
  • 免责声明:
  • 您好,本站所有资源(包括但不限于:源码、素材、工具、字体、图像、模板等)均为用户分享、互换、购买以及网络收集而来,并未取得原始权利人授权,因此禁止一切商用行为,仅可用于个人研究学习使用。请务必于下载后24小时内彻底删除,一切因下载人使用所引起的法律相关责任,包括但不限于:侵权,索赔,法律责任,刑事责任等相关责任,全部由下载人/使用人,全部承担。以上说明,一经发布视为您已全部阅读,理解、同意以上内容,如对以上内容持有异议,请勿下载,谢谢配合!支持正版,人人有责,如不慎对您的合法权益构成侵犯,请联系我们对相应内容进行删除,谢谢!