美文网首页
数组去重

数组去重

作者: 刘宏儿 | 来源:发表于2018-12-01 15:49 被阅读0次

代码如下:

<script>
 function noRepeat(a) {
     var arr = a;//定义一个数组用来接收从外边传进来的数组
     var arr2 = [];//定义一个空数组,用来放不重复的新的数组
     for(var i=0;i<arr.length;i++){//遍历数组
            var flag = true;//定义一个开关没来决定放不放入新数组
            for (j=0;j<arr2.length;j++){//遍历新数组
                if(arr[i]===arr2[j]){//如果相等,就不放了
                    flag=false;
                    break;
                } 
            }
            if(flag){
                arr2.push(arr[i])
            }


     }
     return arr2;
   }
var a = [1,2,3,3,4,4,4,5,8,8,8];
var res = noRepeat(a);
 console.log(res);
</script>

分析:数组去重,就是数组里有重复的元素,要将他去掉,类比一个袋子①里有五颜六色的很多颜色相同的球,要将颜色一样的去掉,颜色相同的只留一个,那么我们会怎么做呢?
首先要准备一个空袋子②------创建一个新的空的数组
然后在袋子①里找球----遍历第一个数组里的值
第一个球肯定是要放到新的袋子里的,这个不用考虑
从袋子①里拿到第二个球,就和袋子②里放入的球比较,如果相同就不放到新袋子里了,扔出去---break
然后继续,直到把袋子里的球拿完。
在这里要加一个开关,开关关着就不让放,开关开着,就放到新袋子里。
为什么要加开关呢?当我拿到一个,它必须和袋子②里的每个球都对比一下,也就是新数组里的值必须遍历完才可以添加,不然只和袋子②里的第一个比较看见不同,就添加进去,其实里面已经有一个相同颜色的,那不就达不到去重的效果了吗?解决这个问题的办法就是要加一个开关。在袋子②遍历完成之后,如果开关开着,才可以加球。

相关文章

  • 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/yskqcqtx.html