es6数组对象去重的方法,es5数组去重的方法
本教程运行环境:windows7系统,ECMAScript版本6,Dell G3电脑。
第一种:利用Set对象和数组的Array.from方法
const new arr=array . from(new Set(arr));代码示例:
打印后的结果
简单来说,第二种方法比第一种简单。我们也简单解释一下。
是setes6,类似于数组,但是本身没有重复值。提供的新数据结构。
Array.from方法用于将两种对象转换成真正的数组:类数组对象和可迭代对象(包括ES6的新数据结构集和映射)。
所以set和Array.from结合也可以达到阵列重复数据删除的效果。不过需要注意的是,主流浏览器像Chrome、Firfox、Opera、Safari,包括微软的Edge都支持,只有IE系列不支持。
第二种:利用Set+扩展运算符 …
第三种方法可以说比较简单。
const newArr=[.新集(arr)];代码示例:
打印后运行的结果
这是使用ES6新功能实现阵列重复数据消除的三种方式。这三种方式的共同优点是代码简洁,对于undefined和NaN也能达到去重效果~ ~
第三种: 利用Map对象和数组的filter方法
唯一函数(arr) {
const RES=new Map();
return arr.filter((a)=!res.has(a) res.set(a,1))
}代码示例:
打印结果
通过打印,我们发现确实达到了预期的效果。那我们简单解释一下。
Map object是ES6提供的一种新的数据结构。has的方法是返回一个布尔值,表示当前Mp对象中是否存在某个值,set的方法是给Map对象设置key/value。
2filter()方法创建一个新数组,新数组中的元素由指定数组中满足条件的所有元素进行检查。
所以Map对象和filter方法的结合可以达到数组去重的效果~
【推荐学习:javascript高级教程】以上是es6阵列中重复数据删除方法的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。