前端面试常问–JavaScript数组去重的几种方法

  • A+
所属分类:体育平台

前端面试常问--JavaScript数组去重的几种方法

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)
}

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: