Js之数组去重

在对数组有一些操作时,有时我们需要对在数组里重复的元素进行处理,把他们删除,把数组重复的元素去掉。这时候我们就会对数组去重,而对数组去重有很多种方法,以下将对7种方法进行了解。

一、利用for循环 

使用for循环对每一位数组元素遍历,将其与后面的数组元素一一比对是否重复,加入重复便将后面与它重复的数组元素去掉。当此数组元素比对结束之后,便会到下一位数组元素进行此操作。

function NoRepeat (arr) {
    for (let i = 0; i < arr.length-1; i++) {
        for (let j = i+1; j < arr.length; j++) {
            if (arr[i]==arr[j]) {
              arr.splice(j,1);//splice是把所要删元素截取出来。
              j--;  //把空下标删除
           } 
        }
    }
    return arr;
};
var arr = [1,2,1,3,5,3];
console.log(NoRepeat(arr));  //输出:[1,2,3,5]

二、利用indexOf

利用indexOf对数组元素的查找,套上for循环,是indexOf循环查找数组重复条件的元素,如果返回这一下标元素在数组中没有重复的结果返回-1,则将它加入新数组。

var arr = [1,2,1,3,5,3];
function noRepeat2(arr) {
    let newArr=[];
    for (let i = 0; i < arr.length; i++) {  
    if (newArr.indexOf(arr[i])===-1) {
        newArr.push(arr[i])
    }
}
    return newArr;
}
console.log( noRepeat2(arr));  //输出:[1,2,3,5]

三、利用lastIndexOf

和使用indexOf同理,使用方法也同理。

var arr = [1,2,1,3,5,3];
function noRepeat3(arr) {
    let newArr = []
    for (let i = 0; i < arr.length; i++) {
       if (newArr.lastIndexOf(arr[i])===-1) {
        newArr.push(arr[i])
       }
    }
    return newArr;
}
console.log( noRepeat3(arr));  //输出:[1,2,3,5]

 四、利用includes

使用includes判断数组结果返回是布尔值,如果结果返回不为真,则在新数组添加这个元素,最后组成不重复去重后的数组。

var arr = [1,2,1,3,5,3];
function noRepeat4(arr) {
    let newArr=[];
    for (let i = 0; i < arr.length; i++) {
        if (!newArr.includes(arr[i])) {
        newArr.push(arr[i])
        }
    }
    return newArr;
}
console.log( noRepeat4(arr));   //输出:[1,2,3,5]

五、利用forEach

 迭代数组,过滤数组符合所创的函数的条件的元素。

var arr = [1,2,1,3,5,3];
function noRepeat5(arr) {
    let newArr=[];
    arr.forEach(function (item) {
        if (newArr.indexOf(item)===-1) {
            newArr.push(item)
        }
    })
    return newArr;
}
console.log( noRepeat5(arr));   //输出:[1,2,3,5]

六、使用filter

函数中使用到三目运算符,如元素被includes处理的结果为假,将把此元素添加在没有重复元素的新数组中。

var arr = [1,2,1,3,5,3];
function noRepeat6(arr) {
    let newArr = []
return arr.filter(function (item) {
        return newArr.includes(item)?"":newArr.push(item)
    })
}
console.log( noRepeat6(arr));  //输出:[1,2,3,5]

七、利用set 

通过set处理创建的数组,其数组里的元素都是唯一的。

var arr = [1,2,1,3,5,3];
let set = new Set(arr);
console.log(Array.from(set));  //输出:[1,2,3,5]

数组去重的方法有多种多样,不仅限于本文所提到的这七种方法,还有很多方法可以使用....... 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值