zoukankan      html  css  js  c++  java
  • 数组中多条对象去重方式

    在数组中都是数字的时候很好去重

    例如: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]);
      };
    };
    
  • 相关阅读:
    软件工程课感想
    冲刺阶段(二)第五天 5月19日
    CATransition转场动画
    UIView与CALayer的区别
    CALayer的基本属性
    CALayer的基本属性和contexts的内容 即添加图片
    Quartz2D-master手动截图
    CoreAnimation-06-CAKeyframeAnimation 相关代码
    CoreAnimation-06-CAKeyframeAnimation
    视频播放
  • 原文地址:https://www.cnblogs.com/lovecode3000/p/12709290.html
Copyright © 2011-2022 走看看