关于数组去重

作者: 李博洋li | 来源:发表于2017-07-04 11:32 被阅读0次

(先注明一下我在饥人谷学习了大概两个月的时间,本身有html和css基础,js听身边的人耳濡目染了一些但是对我而言js还是一门比较陌生的语言,现在已经学完了js的基础课程)今天写的是一个很基础的数组去重,时间比较短,就花了一会写了一下数字的去重,不足之处还请多多指教啦~贴代码

//第一种是在原数组的基础上操作,直接去重复(起名也很招人骂……还请大家多多包涵)
var arr = [1,1,3,5,2,4,7,2,8,9,2,5,6,6,6,6,6,8,81,0]
var array = arr.sort(function(a,b){return a-b})

function two(arr){
    for(var i = 0; i<arr.length; i++){
        if(arr[i] === arr[i-1]){
            arr.splice(i,1)
            two(arr)
        }
    }
    return arr
}
two(array)
//第二种是不改变原数组,新建一个数组进行操作,这就涉及到了引用类型的问题,js引用类型的相关概念大家可以理解一下,我曾经写过一篇文章里面提到了引用类型的一点概念 http://www.jianshu.com/p/f0afab6dd680
var arr = [1,1,3,5,2,4,7,2,8,9,2,5,6,6,6,6,6,8,81,0]
var array = arr.sort(function(a, b){return a - b})
function one(arr){
    var arr2 = []
    for(var i = 0; i <arr.length; i++){
        arr2.push(arr[i])
    }
    return arr2
}
function go(numberGroup){
    for(var j = 0; j<numberGroup.length; j++){
        if(numberGroup[j] === numberGroup[j-1]){
        numberGroup.splice(j,1)
        go(numberGroup)        //这里使用了递归
        }
    }
    return numberGroup.sort(function(a, b){return a - b})  

}
var arr3 = one(array)
go(arr3)
console.log(arr)
//里面使用了递归,递归的概念简单的理解就是自己调用自己,还是用自己的方法,继续处理已有的数据来达到层层筛选达到目的的方法

这是第二种去重的实验结果


数组去重.png

隔了很长时间,今天发现了一种更简单的写法

var arr = [1,1,3,5,2,4,7,2,8,9,2,5,6,6,6,6,6,8,81,28,76,11,11,23,22,44,33,1,5,0]
function unique(arr) {
  var ret = []

  for (var i = 0; i < arr.length; i++) {
    var item = arr[i]
    if (ret.indexOf(item) === -1) {
      ret.push(item)
    }
  }
  return ret
}
//遍历原数组,原数组每个数组我都能得到,我直接去判断新数组中的某一个数字是否从来没出现过,如果没出现,那么ret中这个数字的indexOf就是-1,我就把这个数字拿到ret中来,然而缺点是IE6-8根本不支持indexOf这个方法。

后续可能还会继续更新的一个数组去重……

相关文章

  • 关于数组去重

    (先注明一下我在饥人谷学习了大概两个月的时间,本身有html和css基础,js听身边的人耳濡目染了一些但是对我而言...

  • Array集结号

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

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

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

  • 数组去重的四种方法

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

  • 关于数组去重的问题

    先来看两种解法: 扩展运算符 ... 是把数组或类数组对象展开成一系列用逗号隔开的值。ES6提供了新的数据结构Se...

  • 关于数组去重的小结

    一、js关于数组去重的方法有很多。关于es5的我就列举几个。 1.通过indexOf方法。判断此元素在该数组中...

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

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

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

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

  • js:数组去重

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

  • ES6数组去重

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

网友评论

    本文标题:关于数组去重

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