js数组去重

用splice()方法实现去重

​
var arr=[10,7,5,4,7,4,4,10];
    for(var i=0;i<arr.length;i++){
        for(var j=i+1;j<arr.length;j++){
            //j=i+1是用i后面的第一个数字开始比较
            if(arr[i]==arr[j]){
                arr.splice(j,1);
                //i等于j的话就删除下标为j对应的元素,并且只删除一个
               j--;
               //执行for循环会自增1,从而跳过一个元素,j--就是避免多个相邻元素无法去重
            }
        }
    }
    console.log(arr);

​

用indexOf()方法来实现去重

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

如果没有找到匹配的字符串则返回 -1。

var arr=[10,7,5,4,7,7,4,10];
    var newArr=[];
    //创建一个空数组来接收
    for(var i=0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])===-1){
            newArr.push(arr[i])
        }
    }
    console.log(newArr);

还有一个简便的方法:Set() 它类似于数组,但是成员的值都是唯一的,没有重复的值。所以可以用Set()方法来实现数组去重,代码如下

var arr=[10,7,5,4,7,7,4,10];
    var sum=new Set(arr);
    console.log(sum);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值