JS中數組的去重
阿新 • • 發佈:2019-05-08
元素 put 自己 js數組 ica get rom 一個數 方法
記一道JS數組去重題
前言,有一次去面試,面試官問我一個數組去重題。有哪些方法可以實現。
當時第一反應是hash去重,第一個想法是自己去實現去重算法,(太弱了)。
ES6中的Set類
不過在ES6中新加的Set
類就是一個hash集合的實現,現在我們就用Set
來實現下去重。
//首先生成一個帶有重復元素的數組 [ 0, 1, 1, 2, 2, 3, 3, 4, 4, 5 ] var arr = Array.from(Array(10),(v,k)=>Math.round(k/2)); var set = new Set(arr); //去重後的結果 [ 0, 1, 2, 3, 4, 5 ] var deduplicationArr = [...set];
Map類
Map跟Set差不多,都是基於Hash集合的實現,不過Map是鍵值對的,所以利用Map可以實現鍵值對按鍵的的去重。
var map = new Map();
map.set('key1','value1');
map.set('key1','new-value1');
//output: 'new-value1'
var value = map.get('key1');
JS中數組的去重