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]);
      };
    };
    
  • 相关阅读:
    java 计算文件 md5值
    前端项目结构
    路由器下连接路由器教程
    idea 中抽取部分代码
    idea 多行注释 Ctrl shift / 失效问题
    idea Ctrl+shift+F 快捷键失效原因
    Android studio 安装 jrebel for Android 下载不了问题
    利用C#创建和安装一个windows服务
    25条提高Visual Studio编码和调试效率的技巧
    IIS解决 上传文件大小限制
  • 原文地址:https://www.cnblogs.com/lovecode3000/p/12709290.html
Copyright © 2011-2022 走看看