首页 > 编程语言 > 详细

js中数组去重

时间:2021-07-18 23:24:53      阅读:28      评论:0      收藏:0      [点我收藏+]

1.利用indexOf去重  IE8及以下版本不兼容

function unique(arr){
     var newArr = [];
     for(var i = 0;i < arr.length;i++){
             //indexOf 返回值大于0,说明数组有当期那值,返回-1说明没有值
             if(newArr.indexOf(arr[i]) == -1){
                     newArr.push(arr[i]);
             }           
    }
    return  newArr;
}
var arr = [1,2,3,4,2,3,1,2,3,4,2];
console.log(unique(arr));//[1,2,3,4]

2.利用对象去重 (对象的特性:属性不重复)

//利用对象去重
function unique(arr){
    var obj = {};
    var newArr = [];
    for(var i = 0;i < arr.length;i++){
        if(!obj[arr[i]]){
            obj[arr[i]] = ‘abc‘;
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

var arr = [1,6,6,7,3,4,3,2,3,5,5,4,3,1,4];
console.log(unique(arr));

3.sort()方法去重

// 利用sort()方法去重
function unique(arr){
    var a = arr.sort(function(a,b){return a- b})
    var newArr = [a[0]];
    for(var i = 0;i <arr.length;i++){
        if(newArr[newArr.length-1] !== arr[i]){
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

4.利用双重for循环去重

// 利用双重for循环去重
function unique(arr) {
    var newArr = [arr[0]];
    for (var i = 0; i < arr.length; i++) {
        var ret = false;
        for (var j = 0; j < newArr.length; j++) {
            if (arr[i] == newArr[j]) {
                ret = true;
                break;
            }
        }
        if (ret == false) {
            newArr.push(arr[i]);
        }

    }
    return newArr;
}
console.log(unique(arr));

5.利用函数递归去重

// 利用函数递归去重
function unique(arr){
    var arr1 = arr;
    var len = arr1.length;
    arr1.sort((a,b)=>{return a- b});
    function loop(index){
        if (index >= 1) {
            if(arr1[index] === arr1[index-1]){
                arr1.splice(index,1);
            }
            loop(index - 1);//递归loop,然后数组去重
        }
    }
    loop(len - 1);
    return arr1;
}
console.log(unique(arr));

 

js中数组去重

原文:https://www.cnblogs.com/chenhuaiyou/p/14846657.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!