如何實(shí)現(xiàn)數(shù)組去重欺殿?
假設(shè)有數(shù)組 array = [1,5,2,3,4,2,3,1,3,4]
你要寫一個(gè)函數(shù) unique寄纵,使得
unique(array) 的值為 [1,5,2,3,4]
也就是把重復(fù)的值都去掉,只保留不重復(fù)的值脖苏。
要求:
不要做多重循環(huán)程拭,只能遍歷一次
請給出兩種方案,一種能在 ES 5 環(huán)境中運(yùn)行棍潘,一種能在 ES 6 環(huán)境中運(yùn)行(提示 ES 6 環(huán)境多了一個(gè) Set 對象)
答案:
// ES5:
var array = [1,5,2,3,4,2,3,1,3,4]
function unique(arr){
var tempArr = []
var hash = {}
for(var i=0; i<arr.length; i++){
if(hash[arr[i]] === undefined){
tempArr.push(arr[i])
hash[arr[i]] = 1
}
}
return tempArr
}
console.log(unique(array))
// ES6:
var arr = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
return [...new Set(array)]
}
console.log(unique(arr))