數組中多條對象去重方式


在數組中都是數字的時候很好去重,例如: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]);
  };
};










免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM