陣列去重方法

2021-08-14 19:03:41 字數 1171 閱讀 7575

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));

或者

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];

const s = new set();

arr.foreach(x => s.add(x));

console.log(...new set(s));

2、

建立乙個新的陣列存放結果,

建立乙個空物件

for迴圈時,每次取出乙個元素與物件進行對比,如果這個元素不重複,則把它存放到結果陣列中,同時把這個元素的內容作為物件的乙個屬性,並賦值為1,存入到第2步建立的物件中。

至於如何對比,就是每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。

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];

var arr_new = ;

var json = {};

for(let i=1;i3、構建乙個新的陣列存放結果,

for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比。

若結果陣列中沒有該元素,則存到結果陣列中。

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];

var arr_new = [arr[0]];

for(var i=1;i列印結果:

陣列去重方法

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

陣列去重方法

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

陣列去重方法

第一種方法用set內的值不可重複的屬性 const array 1 4,6 4,64 4,478 function uniqueuseset arr 物件是一種以鍵值對儲存資訊的結構,並且不能有重複的鍵 function uniqueobject arr len arr.length for let...