数组去重

47 阅读1分钟

使用Map

var uniq = function(a){
  var map = new Map()
  for(let i=0; i<a.length; i++){
    let number = a[i] // 1~3
    if(number === undefined){continue}
    if(map.has(number)){
      continue
    }
    map.set(number, true)
  }
  return[...map.keys()]
}
  • 缺点:兼容性差一点

计数排序思路

var uniq = function(a){
  var map = {}
  for(let i=0; i<a.length; i++){
    let number = a[i] // 1~3
    if(number === undefined){continue}
    if(number in map){
      continue
    }
    const result = []
    for(let key in map){
      result.push(parseInt(key))
    }
  }
  return result
  • 缺点:只支持字符串;同时有字符串和数字时,无法区分.