美文网首页
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基础 数组去重

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