数组去重--ES6方法

Posted jsongoit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重--ES6方法相关的知识,希望对你有一定的参考价值。

数组去重方法1:用es6的set ... 扩展运算符

let arr = [1,2,3,4,4,5,2];
console.log([...new Set(arr)]) // [1, 2, 3, 4, 5]

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

Set 本身是一个构造函数,用来生成 Set 数据结构。

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) {
  console.log(i);
}
// 2 3 5 4

扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

console.log(...[1, 2, 3])
// 1 2 3

console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5

[...document.querySelectorAll(‘div‘)]
// [<div>, <div>, <div>]

 

=======================================================================

数组去重方法2:用es6的set和数组扩展Array.from

 

let arr = [1,2,3,4,4,5,2];
console.log(Array.from(new Set(arr))) //[1, 2, 3, 4, 5]

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

下面是一个类似数组的对象,Array.from将它转为真正的数组。

let arrayLike = {
    ‘0‘: ‘a‘,
    ‘1‘: ‘b‘,
    ‘2‘: ‘c‘,
    length: 3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike); // [‘a‘, ‘b‘, ‘c‘]

// ES6的写法
let arr2 = Array.from(arrayLike); // [‘a‘, ‘b‘, ‘c‘]

 

 

 

 

 

以上是关于数组去重--ES6方法的主要内容,如果未能解决你的问题,请参考以下文章

ES6 set方法对数组去重和排序

数组去重方法(ES6)

js中数组去重方法总结

es6 filter() 数组过滤方法总结

数组去重--ES6方法

JS数组去重 ES6 方法