前言,有一次去面試,面試官問我乙個陣列去重題。有哪些方法可以實現。
當時第一反應是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 遍...