一行代碼實現數組去重(ES6)


 

  1. ES6中新增了Set數據結構,類似於數組,但是 它的成員都是唯一的 ,其構造函數可以接受一個數組作為參數,如:

     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} 
  2. ES6中Array新增了一個靜態方法Array.from,可以把類似數組的對象轉換為數組,如通過querySelectAll方法得到HTML DOM Node List,以及ES6中新增的SetMap等可遍歷對象,如:

     let set = new Set(); set.add(1).add(2).add(3); let array = Array.from(set); console.log(array); // => [1, 2, 3] 

於是,現在我們可以用一行代碼實現數組去重了:

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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM