美文网首页
数组去重 ‘古’与‘今’

数组去重 ‘古’与‘今’

作者: 宇少_e010 | 来源:发表于2019-11-25 14:48 被阅读0次

第一种,就是很普通的思维,比如,对于[1,2,2,3,3,3,4,4,4,4]这个数组来说,我们的思路就是,新建一个空的数组,然后对这个要处理的数组做遍历,遍历的每一项都会问一下新数组:“你有没有存过我啊?”,存过(新数组.indexOf(i)>0),那么就不再存了;没存过(新数组.indexOf(i)==-1),就存进去。所以就有了如下代码:

   var arr = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4];
     (function (arr){
          newArr=[];
       for(let i=0; i<arr.length;i++){
        if(newArr.indexOf(arr[i])==-1){
          newArr.push(arr[i])
        }
       }
     })(arr)
     console.log(newArr)

在这里,我用一个自执行的匿名函数对数组做了个遍历,由于newArr是一个全局变量,在执行后不会被销毁,而是返回出去,最后打印的结果正是[1,2,3,4];

es6中有一种结构叫set,它天生就自带互异性,就是说肯定不会有重复的,看一段代码就知道了。

   var arr = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4];
      var s = new Set(arr);//结果为Set{1,2,3,4}
      var newArr = Array.from(s);//把这个类数组对象转为真正的数组
      console.log(newArr);

在第一行代码中就已经得到了一个无重复的类数组对象,而Array.from的作用正是把一个类数组对象(比如平常我们用document.getElementsByTagName获取到的元素集合就是类数组对象)转变为真正的对象。

相关文章

  • 数组去重古与今

    关于数组去重这个问题,但其实我觉得这只是一件很小的事,何必弄得好像实现的方法越复杂就越厉害一样。废话不多说,这里我...

  • 数组去重 ‘古’与‘今’

    第一种,就是很普通的思维,比如,对于[1,2,2,3,3,3,4,4,4,4]这个数组来说,我们的思路就是,新建一...

  • Array集结号

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

  • 数组对象去重的常见操作

    前言: 数组对象去重与数组去重的不同点在于,数组对象需要指定一个属性(key值)再进行去重。 1.数组对象的自定义...

  • 2018-05-09数组去重函数

    数组去重 双循环去重 indexOf方法去重1 indexOf方法去重2 相邻元素去重 利用对象属性去重 set与...

  • js数组分组和去重

    分组 去重 笔试中经常出现的js数组排序与去重算法

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

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

  • 浅析数组翻转与数组去重

    世界上很多的困难,只是思维上设限。 数组翻转 数组翻转有很多方法,这里总结俩种: 原生方法 reverse 使用循...

  • 数组去重的四种方法

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

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

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

网友评论

      本文标题:数组去重 ‘古’与‘今’

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