es6新特性数组去重 array.from(new Set(arr))

4,428 阅读1分钟

数组去重

介绍一种通过ES6的新特性来进行数组快速去重的方法

let numArray = [1, 2, 3, 2, 3]
console.log(Array.from(new Set(numArray))) 
// expected output: 1, 2, 3

new Set()

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

如果传递一个可迭代对象,它的所有元素将不重复地被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。结果会返回一个新的Set对象。

Array.from()

Array.from() 方法从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例。

Array.from() 可以通过以下方式来创建数组对象:

  1. 伪数组对象(拥有一个 length 属性和若干索引属性的任意对象)
  2. 可迭代对象(可以获取对象中的元素,如 Map和 Set 等)
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]

关于new Set()的详细链接:

developer.mozilla.org/zh-CN/docs/…

关于Array.from(的详细链接:

developer.mozilla.org/zh-CN/docs/…