您好,欢迎访问一九零五行业门户网

es6数组去重的方法是什么

es6数组去重的方法:1、利用set对象和数组的from方法,语法“array.from(new set(arr))”;2、利用set和扩展运算符,语法“[...new set(arr)]”;3、利用map对象和数组的filter方法。
本教程操作环境: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数组去重的方法是什么的详细内容。
其它类似信息

推荐信息