数组去重常见的方法

1.Set()

代码:
var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        var set=new Set(arr);
        var arr=[...set];
        console.log(arr)

结果
在这里插入图片描述

2.splice()

代码:
var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        function fnc(arr){
            if(!Array.isArray(arr)){
                console.log("error!")
                return;
            }
            for(var i=0;i<arr.length;i++){
                for(var j=i+1;j<arr.length;j++){
                    if(arr[i]===arr[j]){
                        arr.splice(j,1);
                        j--;
                    }
                }
            }
            return arr;
        }
        var arr=fnc(arr);
        console.log(arr)

结果:
在这里插入图片描述

3.sort()+splice()

代码:
var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        function fnc(arr){
            if(!Array.isArray(arr)){
                console.log("error!");
                return ;
            }
            var arr=arr.sort();
            for(var i=1;i<arr.length;i++){
                if(arr[i-1]===arr[i]){
                    arr.splice(i,1);
                    i--;
                }
            }
            return arr;
        }
        var arr=fnc(arr);
        console.log(arr)

结果:
在这里插入图片描述

4.filter()

代码:
 var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        function fnc(arr){
            if(!Array.isArray(arr)){
                console.log("error!")
                return ;
            }
            var result=arr.filter(function(item,index){
                return arr.indexOf(item,0)==index;
            })
            return result
        }
        var arr=fnc(arr);
        console.log(arr)

结果:
在这里插入图片描述

5.indexOf()

代码:
 var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        function fnc(arr){
            if(!Array.isArray(arr)){
                console.log("error!");
                return;
            }
            var newArr=[];
            for(var i=0;i<arr.length;i++){
                if(newArr.indexOf(arr[i])==-1){
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var arr=fnc(arr);
        console.log(arr)

结果:
在这里插入图片描述

6.includes();

代码:
 var arr=[1,2,34,5,5,"5","hello","hello","world",88]
        function fnc(arr){
            if(!Array.isArray(arr)){
                console.log("error!")
                return;
            }
            var newArr=[]
            for(var i=0;i<arr.length;i++){
                if(!newArr.includes(arr[i])){
                    newArr.push(arr[i])
                }
            }
            return newArr
        }
        var arr=fnc(arr);
        console.log(arr)

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值