原生JS 12 如何實現陣列去重

2021-09-30 19:03:18 字數 1500 閱讀 5256

1.hash

利用物件的屬性不能相同的特點進行去重

缺點:因為 js 裡物件的屬性名只能是字串,所以 true 和 『true』,會被認為是同乙個。

function

unique

(arr)

// for

(let i =

0; i < arr.length; i++)}

return arrry;

}var arr =[1

,1,'true'

,'true'

,true

,true

,undefined,undefined,

null

,null

,nan

,nan,,

];console.

log(

unique

(arr)

)//[1, "true", undefined, null, nan, ]

2.使用 es6 set 去重

es6中新增了資料型別set,set的乙個最大的特點就是資料不重複。set函式可以接受乙個陣列(或類陣列物件)作為引數來初始化,利用該特性也能做到給陣列去重

優點:**最少

缺點:相容性、無法去掉「{}」空物件

function

unique

(arr)

var arr =[1

,1,'abc'

,'abc'

,true

,true

,undefined,undefined,

null

,null

,nan

,nan,,

];console.

log(

unique

(arr)

)// [1, "abc", true, undefined, null, nan, {}, {}]

3.使用 indexof 去重

宣告乙個空的結果陣列,for 迴圈原陣列,判斷結果陣列是否存在當前元素,如果存在則跳過,不存在則 push 進陣列。

缺點:nan、{}沒有去重

function

unique

(arr)

}return array;

}var arr =[1

,1,'abc'

,'abc'

,true

,true

,undefined,undefined,

null

,null

,nan

,nan,,

];console.

log(

unique

(arr)

)// [1, "abc", true, undefined, null, nan, nan, , ]

原生JS實現陣列去重

function fun arr return newarr console.log fun 1 3,4 5,3 1,6 6,7 9 7 1,3,4,5,6,7,9 function fun arr return arr console.log fun 1 3,4 5,3 1,6 6,7 9 7 3...

JS實現陣列去重

方法一,利用物件屬性不能相同的方法進行去重 array.prototype.distinct function result len arr.length for i 0 i arr.length i return result var a 1,2,3,4,5,6,5,3,2,4,56,4,1,2,...

JS實現陣列去重

1.雙迴圈去重。先將陣列的第乙個元素賦值給乙個新陣列,再用兩個巢狀的for迴圈。從陣列的第二個元素開始比較該元素與新陣列中是否有重複的元素,如果有就跳出當前迴圈 如果沒有就把第二個元素賦值給新的陣列。然後從陣列的第三個元素又開始,如此迴圈下去,最後返回新的陣列 即去重後的陣列 如果陣列很大的話就不是...