数组去重的方法

2019-03-03  本文已影响0人  hot_七月

ES6的newSet(...arr)
一、简单的去重方法

//新建一个数组,遍历传入数组,值不在新数组就push进该数组中
function uniq(arr){
    var temp = [ ];
    for(var i = 0; i < arr.length; i++){
        if(temp.indexOf(arr[i]) == -1){
            temp.push(arry[i])
        }
    }
    return temp
}

二、优化遍历数组法

//将数组中无重复的最右一值放入新数组
function uniq(arr){
    var temp =[]
    var index =[]
    var l =arr.length
    for(var i = 0 ;i<l ;i++){
        for(var j = i+1 ;j<l ;j++){
            if(arr[i] === arr[j]){
                i++
                j = i
            }
        }
        temp.push(arr[i])
        index.push(i)
    }
    return temp
}

三、数组下标法

//还是得调用“indexOf”性能跟方法1差不多,
// 实现思路:如果当前数组的第i项在当前数组中第一次出现的位置不是i
//那么表示第i项是重复的,忽略掉。否则存入结果数组。
function uniq(array){
    var temp = [];
    for(var i = 0; i < array.length; i++) {
        //如果当前数组的第i项在当前数组中第一次出现的位置是i,才存入数组;否则代表是重复的
        if(array.indexOf(array[i]) == i){
            temp.push(array[i])
        }
    }
    return temp;
}
上一篇 下一篇

猜你喜欢

热点阅读