数组去重方法

数组去重方法


1、ES6提供了新的数据结构Set,它类似于数组,但是成员的值是唯一的,没有重复的值。
    let arr = [1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,'asd','123','123','123','asd',1,true,true,false];
    console.log(...new Set(arr));
    或者
    let arr = [1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,'asd','123','123','123','asd',1,true,true,false];
    const s = new Set();
    arr.forEach(x => s.add(x));
    console.log(...new Set(s));
2、 创建一个新的数组存放结果,创建一个空对象for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。至于如何对比,就是每次从原数组中取出一个元素,然后到对象中去访问这个属性,如果能访问到值,则说明重复。
 let arr = [1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,'asd','123','123','123','asd',1,true,true,false];
    var arr_new = [];
    var json = {};
    for(let i=1;i<arr.length;i++) {
    if(!json[arr[i]]) {
        arr_new.push(arr[i]   );
        json[arr[i]] = 1;
    }
    }
    console.log(arr_new)
3、构建一个新的数组存放结果,for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比。若结果数组中没有该元素,则存到结果数组中。

  let arr = [1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,'asd','123','123','123','asd',1,true,true,false];
    var arr_new = [arr[0]];
    for(var i=1;i<arr.length;i++) {
        var repeat = false;
        for(var j = 0; j < arr_new.length; j++){
            if(arr[i] == arr_new[j]){
                repeat = true;
            }
        }
        if(!repeat) {
            arr_new.push(arr[i]);
        }
    }
    console.log(arr_new)
打印结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值