数组去重的三种方法

2018-10-18  本文已影响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);
上一篇下一篇

猜你喜欢

热点阅读