JS数组中去重复对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		$(function(){
			var arry = [
				{id:1,name:'a'},
				{id:2,name:'b'},
				{id:3,name:'c'},
				{id:1,name:'a'}
			];
			var unique = toRpeat(arry);
			console.log(unique);
		});
		//去重复
		function toRpeat(arry){
			var arr = new Array();
			for(var i=0;i<arry.length;i++){
				if(i==0){
					arr.push(arry[i]);	
				}else{
					//是否包含
					var status = isCot(arr,arry[i].id);
					//不包含
					if(status==false){
						arr.push(arry[i]);	
					}
				}
			}
			return arr;
		}
		function isCot(arr,id){
			for(var i=0;i<arr.length;i++){
				if(arr[i].id==id){
					return true;
				}else{
					return false;					
				}
			}
		}
	</script>

</html>

上面的代码有点问题,去重方法修复了一下

//去重复
function toRpeat(arry){
    var arr = new Array();
    var dept = {
        DEPT_ID:'',
        DEPT_NAME:'--全部--'
    };
    arr.push(dept);
    for(var i=0;i<arry.length;i++){
        if(i==0){
            arr.push(arry[i]);
        }else{
            //是否包含
            var status = isCot(arr,arry[i].DEPT_ID);
            //不包含
            if(status==false){
                arr.push(arry[i]);  
            }
        }
    }
    return arr;
}
//判断是否包含
function isCot(arr,id){
    var flag = false;
    for(var i=0;i<arr.length;i++){
        if(arr[i].DEPT_ID==id){
            flag = true;
        }
    }
    return flag;
}


你可能感兴趣的:(js,去重,数组,对象)