ES6中新增了Set
數據結構,相似於數組,可是 它的成員都是惟一的 ,其構造函數能夠接受一個數組做爲參數,如:javascript
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; let set = new Set(array); console.log(set); // => Set {1, 2, 3, 4, 5}
ES6中Array
新增了一個靜態方法Array.from
,能夠把相似數組的對象轉換爲數組,如經過querySelectAll
方法獲得HTML DOM Node List
,以及ES6中新增的Set
和Map
等可遍歷對象,如:html
let set = new Set(); set.add(1).add(2).add(3); let array = Array.from(set); console.log(array); // => [1, 2, 3]
因而,如今咱們能夠用一行代碼實現數組去重了:java
let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4])); console.log(array); // => [1, 2, 3, 4]
附:ES5實現數組去重數組
var array = [1, '1', 1, 2, 3, 2, 4]; var tmpObj = {}; var result = []; array.forEach(function(a) { var key = (typeof a) + a; if (!tmpObj[key]) { tmpObj[key] = true; result.push(a); } }); console.log(result); // => [1, "1", 2, 3, 4]
轉:http://www.cnblogs.com/raocheng/articles/6549556.html