1. 程式人生 > >JS中數組的去重

JS中數組的去重

元素 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中數組的去重