数组对象去重方式

在数组中都是数字的时候很好去重,例如:var arr=[1,2,2,2,3,4,5,4,5,3,6];可以用两层for循环或者其他方式进行去重,在数组中都是对象的时候就需要设置布尔值来进行去重操作,原理也是两层for循环,但是在第一层for循环内需要定义布尔值为true,用来维持一个量,之后在内层for循环中进行比对,如果按照某个条件比对满足的话,布尔值就为false,之后在第一层for循环里第二层for循环外进行布尔判断,如果为真,将数据插入到新数组,如果不为真,则不用添加,从此达到了数组去重的功能,以下是代码演示

    var oldArr = [
        {id:1,name:"zhangs",age:18,contact_id:1},
        {id:1,name:"zhangs",age:18,contact_id:2},
        {id:1,name:"zhangs",age:18,contact_id:3},
        {id:1,name:"zhangs",age:18,contact_id:14},
        {id:1,name:"zhangs",age:18,contact_id:3},
        {id:1,name:"zhangs",age:18,contact_id:2},
        {id:1,name:"zhangs",age:18,contact_id:1}
    ];//原数据数组
    var allArr = [];//新数组

1.该方法为jquery方法

    $.each(oldArr,function(i,v){
        var flag = true;
        if(allArr.length > 0){
            $.each(allArr,function(n,m){
                if(allArr[n].contact_id == oldArr[i].contact_id){flag = false;};
            });
        };
        if(flag){
            allArr.push(oldArr[i]);
        };
    });

2.原生js方法

    for(var i=0;i<oldArr.length;i++){
      var flag = true;
      for(var j=0;j<allArr.length;j++){
        if(oldArr[i].id == allArr[j].id){
          flag = false;
        };
      }; 
      if(flag){
        allArr.push(oldArr[i]);
      };
    };

转自https://www.cnblogs.com/jiangze-blog/p/7987846.html

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值