在陣列中有時候會有重複元素,而我們並不需要因此就需要對陣列進行去重。
去重的方法很多,這裡幾種是自己易於理解的幾種方法。
利用es6提供的新的資料結構set。它類似於陣列,但是它的元素值是唯一的,沒有重複的。
1 let arr = [1,1,1,1,1,1,2,3,4,1,2,3,4]2 arr = array.from(new
set(arr))
3console.log(arr)4//
[ 1, 2, 3, 4 ]
let arr = [1,1,1,1,1,1,2,3,4]function
distinct(arr)
});return
result;
}console.log(distinct(arr))
//[ 1, 2, 3, 4 ]
1 let arr = [1,1,1,1,1,1,2,3,4]23function
distinct(arr) 12}
13}14return
arr;15}
16console.log(distinct(arr))
17//
[ 1, 2, 3, 4 ]
let arr = [1,1,1,1,'1',1,2,3,4,'4']function
unique(arr);
return arr.filter((item) =>)
}console.log(unique(arr))
//[ 1, 2, 3, 4 ]
由上面個看出,不能區分 1 和 『1』 ,因此此方法僅適用於純數字的陣列。
let arr = [1,1,1,1,1,1,2,3,4,'4','4','4']function
unique(arr),
item,key,
res =;
for(let i=0,len=arr.length;i)
} return
res;
}console.log(unique(arr))
//[ 1, 2, 3, 4, '4' ]
此方法可以區分數字和字元,比上一種方法更優。
let arr = [1,1,1,1,1,1,2,3,4,'4','4','4']function
distinct(arr)
}result.push(arr[i])
} return
result;
}console.log(distinct(arr))
//[ 1, 2, 3, 4, '4' ]
以上就是幾種易於理解的常用陣列去重方法。
陣列去重方法
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...