JS中陣列的去重

2022-08-20 21:27:13 字數 660 閱讀 7778

前言,有一次去面試,面試官問我乙個陣列去重題。有哪些方法可以實現。

當時第一反應是hash去重,第乙個想法是自己去實現去重演算法,(太弱了)。

不過在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跟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中陣列去重

js中的陣列去重 1.建立乙個新陣列,把陣列中的每乙個元素插入到新陣列中 2.遍歷原陣列中每乙個元素分別和新陣列中的每乙個元素進行比較 第一種去重方法 原陣列 var arr 1 2,5 41,1 2,1 4,5 8,10 新陣列 var t t 0 arr 0 arr中的每乙個元素 for var...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

JS中陣列去重問題

js中陣列去重問題 我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍...