JavaScript数组去重的几种方法
方法一:用array.filter数组方法
const myFilter = (arr) => {
return arr.filter((item, index) => {
return arr.indexOf(item) === index
})
}
方法二:双层循环使用splice删除重复数值
let myFilter = (arr) => {
for(let i = 0; i < arr.length; i++){
for(let j = 0; j < i; j++){
if(arr[j] === arr[i]){
arr.splice(j, 1)
}
}
}
return arr
}
方法三:使用Map数据结构去重
let myFilter = (arr) => {
let m = new Map()
for(let i = 0; i < arr.length; i++){
if(m.get(arr[i])){
m.set(arr[i], m.get(arr[i]) + 1)
}
else{
m.set(arr[i], 1)
}
}
let res = []
for(let item of m){
res.push(item[0])
}
return res
}
方法四:使用Set数据结构的特性去重
let myFilter = (arr) =>{
let s = new Set(arr)
return Array.from(s)
}