数组去重

著名面试题:
如何实现数组去重?
假设有数组 array = [1,5,2,3,4,2,3,1,3,4]
你要写一个函数 unique,使得
unique(array) 的值为 [1,5,2,3,4]
也就是把重复的值都去掉,只保留不重复的值。

不使用 Set

function unique(arr) {
    if (!Array.isArray(arr)) return "error"
    let res = []
    for (let i = 0; i < arr.length; i++) {
        if (res.indexOf(arr[i]) === -1) {
            res.push(arr[i])
        }
    }
    return res
}

使用 Set 去重

function unique(arr) {
    if (!Array.isArray(arr)) return "error"
    return [...new Set(arr)]
}

使用Map 支持对象去重的

function unique(arr) {
  let hashMap = new Map();
  let result = new Array();  
  for (let i = 0; i < arr.length; i++) {
    if(hashMap.has(arr[i])) { 
      hashMap.set(arr[i], true); 
    } else { 
      hashMap.set(arr[i], false);  
      result.push(arr[i]);
    }
  } 
  return result;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 丝竹声也渐渐地淡了下去,宾客们也依次离席了。 云深不知处难得的热闹开始落幕了。 蓝晏独自坐在陋室庭...
    满阶明月阅读 239评论 0 3
  • 未想哭离人,双目珍珠锁。 你若归家你自归,谁比谁难过。 我定会思量,管你思量我。 只是痴心错付人,一世休方可。
    76c9f5e44579阅读 329评论 0 0
  • 夏、商、周、春秋战国、秦国地图 郭沫若主编,中国社会科学院历史研究所编。本图集是配合《中国史稿》编制的一本综合性中...
    叶冷随记阅读 6,253评论 0 3
  • 枫霜秋日光,竹影映池塘。 帘卷微风起,桂花一院香。
    三生有幸之遇见阅读 327评论 1 6

友情链接更多精彩内容