js陣列去重的常見方式

2021-10-06 01:20:07 字數 1964 閱讀 8953

陣列去重,在面試、筆試中,會經常遇到,下面談下常見的去重方法,從中可以觀察不同的去重方法的效果。

let arr =[1

,'1',2

,2,true

,true

,'true'

, undefined,

null

, undefined,

null

,nan

,nan,,,,

]// 利用es6 set去重(es6中最常用),{}沒去重

const

unique1

= arr =>

const

unique2

= arr =>

console.

log(

'----------array.from(new set(arr))--------'

)console.

log(

unique1

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, {}, {}, , ]

console.

log(

'----------[... new set(arr)]--------'

)console.

log(

unique2

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, {}, {}, , ]

const

unique3

= arr =>if(

!(~array.

indexof

(arr[i]))

)}return array

}console.

log(

'----------indexof--------'

)console.

log(

unique3

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, nan, {}, {}, , ]

const

unique4

= arr =>

}return array

}console.

log(

'----------includes--------'

)console.

log(

unique4

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, {}, {}, , ]

const

unique5

= arr =>,[

])}console.

log(

'----------reduce--------'

)console.

log(

unique5

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, {}, {}, , ]

const

unique6

= arr =>

return arr.

filter

(val =>)}

console.

log(

'----------filter+hasownproperty--------'

)console.

log(

unique6

(arr)

)// [ 1, '1', 2, true, 'true', undefined, null, nan, {}, ]

JS陣列去重的幾種常見方法

js陣列去重的幾種常見方法 一 簡單的去重方法 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5,2,3,5,6,5...

JS陣列去重的幾種常見方法

方法一 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5,2,3,5,6,5 console.log uniq aa...

JS陣列去重的幾種常見方法

js陣列去重的幾種常見方法 一 簡單的去重方法 最簡單陣列去重法 新建一新陣列,遍歷傳入陣列,值不在新陣列就push進該新陣列中 ie8以下不支援陣列的indexof方法 function uniq array return temp var aa 1,2,2,4,9,6,7,5,2,3,5,6,5...