数组去重

数组去重的常用方法

es5 Array.prototype.reduce 法

reduce() 方法对累计器和数组中的每个元素(从左到右)应用一个函数,将其简化为单个值。

1
2
3
4
5
6
7
8
9
var arr = [1,3,2,8,6,7,9,9,3,1,1,6,6,2 , "a" , "a"]

var res = arr.sort().reduce( ( init , curr )=> {
if ( init.length === 0 || (init[init.length-1]) !== curr )
init.push(curr);
return init;
} , [])

console.log( res ); // [1, 2, 3, 6, 7, 8, 9, "a"]

es6 Set数据结构法

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

1
2
3
4
var result = [...new Set(arr)];

console.log( result ); // [1, 2, 3, 6, 7, 8, 9, "a"]