Skip to content

去重

优先用 set 或 for Map 方法

js
// 1. set
const uniqueArr = function (arr) {
  return [...new Set(arr)]
}
// 2. for indexof/includes
// 2.1 for Map
  function unique(arr){
    let map = new Map()
    let res = []
    for(let i of arr){
      if (!map.has(i)) {
        map.set(i, 1)
        res.push(i)
      }
    }
    return res
  }
  let r = unique([1, 2, 4, 3, 2, 1, '1', '1'])
  console.log(r)
// 3. sort 相邻元素比对
  function unique(arr){
    let list = arr.sort()
    let res = []
    for(let i = 0, len = list.length; i < len; i++) {
      if (i > 0 && list[i] === list[i - 1]){
        continue
      } 
     
      res.push(list[i])
    }
    return res
  }
  let r = uniq([1, 2, 4, 3, 2, 1, '1', '1'])
  console.log(r)