zoukankan      html  css  js  c++  java
  • 每日分享!~ JavaScript数组去重

    数组去重

    数组去重在很多面试的过程中,都是大题出现!网络上出现了很多数组去重的方式。多数的达到了12种以上。

    今天我只给大家介绍两种我比较喜欢,比较认可!入手简单的~能解决自己的问题就可以了

    好了 ,不多bb,直接上代码:

    方式1:   indexOf

     <script>
            // 业务要求
            /**
                数组的去重
            **/
    
            // 方式1 使用indexof方式
            function ClearArray(arr){
                // 创建一个新的数组来存放去重之后的数组
                var newArr = []
                // 将传入数组进行循环遍历处理
                arr.forEach(item => {
                    // 使用indexof 判断newArr中数组是否存在,不存在的话直接push进去
                   if ( newArr.indexOf(item) === (-1)) {
                       newArr.push(item)
                   }
                })
                return newArr
            }
            // 测试数组
            var arr = [1,3,4,5,6,4,33,3,3,,4,3]
            console.log(ClearArray(arr))
            //结果 [1, 3, 4, 5, 6, 33]   
        </script>

    注意:这个判断是对于定义新数组去判断,不是对需要判断对数组。

    总结,利用indexOf方法判断新数组中是否存在该元素,不存在的话,push 到新数组中去,如果push过,在次判断的时候,就会显示存在,这样就会直接跳过。

    ----------------------------------------黄金分割线---------------------------------------------------------------

    方式2  splice()

    直接上代码:

     function ClearArray(arr){
                // 首先循环遍历该数组
                for(var i = 0; i<arr.length; i++){
                    for(var j=i+1; j<arr.length; j++){
                        //用第一个元素跟其他元素进行对比
                        if (arr[i] === arr[j]){
                            // 如果该元素跟本身元素相同,那么去掉该元素
                            arr.splice(j,1)
                            j--
                        }
                    }
                }
                // return 该元素
                return arr
            }
            var arr = [1,3,4,5,6,4,33,3,3,,4,3]
            console.log(ClearArray(arr))
         // 结果 [1, 3, 4, 5, 6, 33, empty]

    注意, 这个方式是通过二次循环来判断,一个元素同其他元素对比。如果与该元素相同的话,则需要通过splice方法,去掉该元素。

    -----------------------------分割线------------------------------------------

    总结以上两种方法的差异:

    相信大家通过结果。关注了两个方式的结果不一致,第一个结果去重:将空元素都去掉了。第二个方式没有,而是显示的empty 。

    如果该元素不需要空元素的话,建议使用第一种方式。如果需要的话, 建议使用第二种方式。

  • 相关阅读:
    js去除空格
    Quartz定时任务学习(九)Quartz监听器
    Quartz定时任务学习(七)Cron 触发器
    数据挖掘之聚类算法K-Means总结
    SQL SERVER分区具体例子详解
    基于basys2驱动LCDQC12864B的verilog设计图片显示
    图像处理的多线程计算
    三维空间中的几种坐标系
    2017年要学习的三个CSS新特性
    Mesos 资源分配
  • 原文地址:https://www.cnblogs.com/yaogengzhu/p/10743177.html
Copyright © 2011-2022 走看看