美文网首页
又是老话题,数组去重

又是老话题,数组去重

作者: 袁韩 | 来源:发表于2016-06-11 10:57 被阅读34次

昨天看到一个讨论数组去重的文章,觉得代码可以再简洁一点。

普通解法

时间复杂度:O(n^2)

function unique(arr){
  return arr.reduce((ret, cur)=> {
    if (ret.includes(cur)) {
      return ret
    } else {
      ret.push(cur)
      return ret
    }
  }, [])
}

高效解法

把object对象看作hashTable的话,那么这个算法时间复杂度:O(n),但是空间复杂度为O(n)

// 没有处理字符与数字的重复性
function unique(arr){
  var dict = {}
  var ret = []

  arr.forEach((val) => {
    val in dict ? null : dict[val] = ret.push(val)
  })

  return ret
}

相关文章

  • 又是老话题,数组去重

    昨天看到一个讨论数组去重的文章,觉得代码可以再简洁一点。 普通解法 时间复杂度:O(n^2) 高效解法 把obje...

  • Array集结号

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

  • 实现数组去重有哪些方式

    简单的数组去重 数组对象去重

  • 数组去重的四种方法

    利用双for循环去重 利用对象数组去重 利用对象数组去重并且记录重复次数 通过创建一个新数组进行数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • javascript数组去重,数组对象去重

    利用Reduce去重 function unique(arr) {var obj = {};arr = arr.r...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js reduce去重用法

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

  • 数组去重

    传统方法 ES6 扩展 传统方法 最后再写到 Array.prototype 原型中

网友评论

      本文标题:又是老话题,数组去重

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