美文网首页
数组去重的三种方法

数组去重的三种方法

作者: 阿布朗迪 | 来源:发表于2018-10-18 17:54 被阅读0次

    方法一:利用封装函数去重

    var arr = [1,2,2,4,4,7,10,15,6,8,34];
        var newArr = [];
        var flag = false;
        function hasNumber(arr,num){//判断一个数是否在数组里
            for( var i = 0; i < arr.length ;i++){
                if(arr[i] == num ){
                    flag = true;
                    return true;
                }
            }
            if( !flag ){
                return false;
            }
        }
    
        function norepeat(arr){
            var newArr = [];
            for( var i = 0; i < arr.length;i++){
                if( hasNumber(newArr,arr[i])){
                    newArr.push( arr[i]);
                }
            }
            return newArr;
        }
    
    

    方法二:利用对象的键值对唯一性,

    var arr = [1,2,2,4,4,7,10,15,6,8,34];
    var obj = {};
    var newArr = []
    // console.log( ! obj )
    for( var i = 0; i < arr.length;i++){
        if( obj[arr[i]] == undefined ){//此处是利用对象key的唯一性
            obj[arr[i]] = 2;//如果对象中arr[i],则把它设置为value值,形成键值对
            newArr.push(arr[i]);
        }
    }
    console.log( newArr )
    

    方法三:使用ES6新增的Set()方法

    let arr = [1,2,3,4,4,3,2,4,1,5,6]
    let mySet = new Set(arr);
    let newArr = [];
    for(let i of mySet){//for ···of···用于无法使用索引值的遍历
        newArr.push(i);
    }
    console.log(newArr);
    

    相关文章

      网友评论

          本文标题:数组去重的三种方法

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