手写数组去重

81 阅读1分钟
function uniq(arr){
    let map = new Map()
    for(let i = 0; i < arr.length; i++){
        let number = arr[i]
        if(number === undefined){
          continue
        }
        if(map.has(number)){
          continue
        }
        map.set(number, true)
    }
    return [...map.keys()]
}
let arr = [1,undefined,2,3,'3',5,5]
console.log(uniq(arr));

使用 Map,缺点是兼容性差了一点, 兼容不了IE

当然也可以使用indexOf, filter, includes 等一些API也是可以实现的