陣列去重的方法

2021-10-01 13:31:00 字數 1014 閱讀 4668

字串去重跟陣列去重大同小異,將字串轉成陣列即可使用陣列去重方法。

1.es6去重:

原理:es6新的資料結構set類似於陣列,但成員的值都是唯一的,可用於陣列去重。

function unique(array) 

unique([1,2,2,3,4,5,5,5])

2.es5:

function unique(array) 

}console.log(result.tostring());

}unique([1,2,3,4,3,4,5,6,6,7]);

3.雜湊表方式:

function unique(arr));

return newarr;

}var result3 = norepeat3(arr2);

console.log(result3); // [ "h", "e", "l", "o", "2", 1, 2, 3 ]

很多時候,我們查詢出來的資料需要去重的,而且是有條件地去重和排序,雖然大部分的時候可以自己絞盡腦汁寫個sql去達到目標。例如我們需要某一列不重複,而且需要其他的某列值是最大或最小,特別是其他列的資料**於其他的表,這時候寫sql的難度就大大的增加了。 

如果用hashmap就不用考慮那麼多問題。我們只需要寫乙個查詢排好序sql, 

然後把結果迴圈put進map裡面就可以啦,去重的字段就作為key值,value值按需輸入就可以。

當然hashmap還能用於生成多個隨機碼的時候避免重複。 

隨機碼生成有很小的概率會重複,但不代表不會出現特別是資料量很大的時候。一般避免重複的方法就是放到某個容器裡面例如list、map等,然後contains(***)查詢重複,用if語句去判斷是否插入進去然後再去生成。 

如下兩層迴圈去生成下去

for(int i=0;iwhile(map.size()set和multiset都是基於紅黑樹實現的,其中查詢、刪除和插入操作都只需要o(logk)時間。 

陣列去重方法

1 es6提供了新的資料結構set,它類似於陣列,但是成員的值是唯一的,沒有重複的值。let arr 1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,asd 123 123 123 asd 1,true,true,false console.log new set arr 或...

陣列去重方法

雙迴圈去重 雙重 for 或 while 迴圈是比較笨拙的方法,它的實現原理很簡單 先定義乙個包含原始陣列第乙個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列的每個元素進行比較,如果不重複則新增到新的陣列中,最後返回新的陣列,其缺點是如果陣列長度很長,那麼將會非常消耗記憶體 funct...

陣列去重方法

1.使用原生的filter和indexof來進行過濾和篩選。var filtered data.filter function item,index 複製 使用filter的第三個引數繫結this的值 var filtered2 data.filter function item,index,sel...