美文网首页
JavaScript基础 数组去重

JavaScript基础 数组去重

作者: 0说 | 来源:发表于2018-02-02 17:55 被阅读0次

例1、一个数字如果数组里有就不加,如果没有就往后面添加

var arr = [ 5,4,7,8,9,10 ];
var num = 2;
if( arr.indexOf(  num ) ===-1 ){  //如果没有一样就把2放进去
    arr.push( num );
}
console.log( arr ); 结果  [ 5,4,7,8,9,10,2 ];

例2、去重复的数字

    <script>
        var arr = [ 55,6,6,8,1,8,8,4,2,84,0 ];
        var arr2 = [];
        arr2.push( arr[0] );
        for ( var i=0 ; i<arr.length ; i++ ){
            if( arr2.indexOf( arr[i])=== -1 ){
                arr2.push( arr[i] );
            }
        }
        console.log( arr2 );   结果: [55, 6, 8, 1, 4, 2, 84, 0]

        /*
        var arr = [ 55,6,6,8,1,884,2,84,0 ];
        var arr2 = [ 55 ];
        思路:
        先把arr的第一位放进来;
        再从arr拿第二个过来遍历arr2看有没有
         arr2.indexOf( arr[2] ) 没有就把它放进去  arr2.push( arr[2] );
         arr2.indexOf( arr[3] ) 没有就把它放进去  arr2.push( arr[3] );
         arr2.indexOf( arr[4] ) 没有就把它放进去  arr2.push( arr[4] );

       for( var i=0 ; i<arr.length ; i++ ){
            if( arr2.indexOf( arr[i] ) ){
                    arr2.push( arr[i] )
            }
       }

    */
    </script>


第二种方法
var arr = [1 , 8 , 8 , 84 , 21 , 21 , 8 , 1 , 74];
        /*
        思路:
        如果拿第一项往后面一个比,如果相同在删掉的时候会改变数组的长度
        ===>[1 , 8 , 8 , 84 , 21 , 21 , 8 , 1 , 74];这里的长度就变短了,循环到后面的时候数组就没原来的长了,会出错,
                                  所以只能拿后面往前比,如果删掉后面,序号就在前一位了
      

        */
        for ( var i= arr.length-1 ; i>= 0 ; i-- ){
             // i = 9  j = 8开始   74 没删掉
            // i = 8  j = 7开始   1 被删掉   [1 , 8 , 8 , 84 , 21 , 21 , 8 , 74]
            // i = 7  j = 6开始    8 被删掉   [1 , 8  , 84 , 21 , 21  , 74]
            // i = 6  j = 5开始    21 被删掉   [1 , 8  , 84 , 21  , 74]
            for ( var j=i-1 ; j>= 0  ; j-- ){
                if( arr[i] === arr[j] ){
                    arr.splice( i,1 );
                }
            }
        }
        console.log( arr );

相关文章

  • 知识点

    javascript【基础】call/apply/bind,数组reduce,数组去重,变量声明提升【跨域】Ima...

  • JavaScript基础 数组去重

    例1、一个数字如果数组里有就不加,如果没有就往后面添加 例2、去重复的数字

  • JavaScript数组去重算法实例

    本文主要介绍了JavaScript数组去重算法,结合实例形式总结分析了JavaScript数组去重相关的读写、遍历...

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

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

  • JavaScript - 数组去重

    数组去重 1.for循环 2.0 少了多少行代码~~~ 3.0 indexOf 4.0 map/forEach E...

  • javascript 数组去重

    es6数组去重的方法

  • JavaScript 数组去重

    数组去重,一般都是在面试的时候才会碰到,一般是要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你...

  • JavaScript 数组去重

    博客地址:https://ainyi.com/#/32 单数组去重 filter + indexOf() filt...

  • JavaScript数组去重

    数组去重是一个js中在面试中经常被问到的问题,被问到是因为确实能够考察一些问题。如果不使用第三方的工具库,完全使用...

  • Javascript 数组去重

    数组去重 数组去重,一般需求是给你一个数组,调用去重方法,返回数值副本,副本中没有重复元素。一般来说,两个元素通过...

网友评论

      本文标题:JavaScript基础 数组去重

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