数组去重方法大全(最常见的6种方法)

195 阅读1分钟

数组去重的方法

<script>
        var arr = [1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7];
​
        // 方法1    使用Set数据类型完成数组去重
        var newArr = [...new Set( arr )];
        console.log( newArr );
​
​
        // 方法2    利用 indexOf() 创建新数组 不重复的数据写入
        var newArr = [] ;
        for( var i = 0 ; i <= arr.length-1 ; i++ ){
            if( newArr.indexOf( arr[i] ) === -1 ) newArr.push( arr[i] );
        }
        console.log( newArr );
​
        // 方法3    filter 过滤完成数组去重
        var newArr = arr.filter( function( value , index ){
            return arr.indexOf( value ) === index ;
        })
        console.log( newArr );
​
        // 方法4    利用对象完成数组去重
        var obj = {};
        for( var i = 0 ; i <= arr.length-1 ; i++ ){
            obj[ arr[i] ] = '随便存' ; 
        }
        var newArr = [] ;
        for( var key in obj ){
            newArr.push( key );
        }
        console.log( newArr );
​
        // 方法5    使用sort排序 删除相邻数据相同的单元
        arr.sort( function( a,b ){ return a-b } );
        for( var i = 0 ; i <= arr.length-1-1 ; i++ ){
            if( arr[i] === arr[i+1] ){
                arr.splice( i+1 , 1 );
                i--;
            }
        }
        console.log( arr );
​
​
        // 方法6 双重for循环 
        for( var i = 0 ; i <= arr.length-1-1 ; i++ ){
            for( var j = i+1 ; j <= arr.length-1 ; j++ ){
                if( arr[i] === arr[j] ){
                    arr.splice( j , 1 );
                    j--;
                }
            }
        } 
        console.log( arr );
    </script>