ES6里新添加了两个很好用的东西,set和Array.from。
set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目。

噼里啪啦
let arr = ['11', 1,'11',2,'2',2,'2',undefined,undefined,null,null,NaN,NaN]

new Set(arr) => {'11',1,2,'2',undefined, null, NaN} // 默认返回一个对象

在这我们可以看见,重复的项目已经被去掉了,包括NaN。正常情况下,NaN === NaN 返回的是false,但是在set里,一样能够帮你去重,厉害了。

new Set()去重默认返回一个对象,要是想返回一个数组,就该轮到Array.from出场了,它的作用,就是可以把类数组对象、可迭代对象转化为数组。

let arr = ['11', 1,'11',2,'2',2,'2',undefined,undefined,null,null,NaN,NaN]

Array.from(new Set(arr)) => ['11',1,2,'2',undefined, null, NaN]

IE不支持es6的set array.from

发表回复

您的电子邮箱地址不会被公开。