数组中多条对象去重方式(原生js和JQ两种方式)

数组中多条对象去重方式:

在数组中都是数字的时候很好去重,例如: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 = [];
  • 方法一: 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]);
   };
});
  • 方法二: 原生JS
for(var i=0;i

你可能感兴趣的:(数组中多条对象去重方式(原生js和JQ两种方式))