数组去重-Map实现

作者: dear智子 | 来源:发表于2020-05-25 16:33 被阅读0次

https://segmentfault.com/a/1190000015923301?utm_source=tag-newest

function arrayNonRepeatfy(arr) {
  let hashMap = new Map();
  let result = new Array();  // 数组用于返回结果
  for (let i = 0; i < arr.length; i++) {
    if(hashMap.has(arr[i])) { // 判断 hashMap 中是否已有该 key 值
      hashMap.set(arr[i], true);  // 后面的true 代表该 key 值在原始数组中重复了,false反之
    } else {  // 如果 hashMap 中没有该 key 值,添加
      hashMap.set(arr[i], false);  
      result.push(arr[i]);
    }
  } 
  return result;
}

let arr = [1, 1, 1, 2, 3, 3, 4, 5, 5, "a", "b", "a"];
console.log(arrayNonRepeatfy(arr)); // [ 1, 2, 3, 4, 5, 'a', 'b' ]

filter

function unique(arr) {
    //定义常量 res,值为一个Map对象实例
    const res = new Map();
    
    //返回arr数组过滤后的结果,结果为一个数组
    //过滤条件是,如果res中没有某个键,就设置这个键的值为1
    return arr.filter((a) => !res.has(a) && res.set(a, 1))
}

相关文章

  • 数组去重-Map实现

    https://segmentfault.com/a/1190000015923301?utm_source=ta...

  • 数组去重-Map实现

    数组去重去重前:[ 1, 1, 2, 2, 3, 4, 4, 5 ]去重后:[ 1, 2, 3, 4, 5 ]主要...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 四种方法实现数组去重

    数组去重一般来说就这么几种方法,理解代码,记住就好!Map、Set、reduce、filter~map实现 set...

  • 笔试题

    实现继承 防抖 节流 reduce实现map 二叉树遍历 数组去重 斐波那契数列 调度器 数组快排 洗牌算法 (打...

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • 实现数组去重

  • Map对象 数组对象去重

    has方法可以判断Map对象中是否存在指定元素,有则返回true,否则返回false set方法可以向Map对象添...

  • 2018-06-13(数组 去重,class类名兼容)

    数组 去重 (使用josn的特点来实现数组的去重) class 类名 的 兼容 function $(){ ...

网友评论

    本文标题:数组去重-Map实现

    本文链接:https://www.haomeiwen.com/subject/axnyahtx.html