1. 程式人生 > >陣列中有多條物件去重方式

陣列中有多條物件去重方式

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JQ去重</title>
</head>
<body>
<script src="js/jquery-1.11.0.js"></script>
<script>
	//jQuery方式
	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 = [];//新陣列
   
   $.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]);
	    };
	});

   console.log(allArr)
   
   
   
// 原生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]);
	  };
	};
     console.log(allArr)
</script>
</body>
</html>