JavaScript數組功能擴展--差集,並集,合集,去重

//數組功能擴展
Array.prototype.each = function(fn){  
    fn = fn || Function.K;  
     var a = [];  
     var args = Array.prototype.slice.call(arguments, 1);  
     for(var i = 0; i < this.length; i++){  
         var res = fn.apply(this,[this[i],i].concat(args));  
         if(res != null) a.push(res);  
     }  
     return a;  
}; 
//數組是否包含指定元素
Array.prototype.contains = function(suArr){
	for(var i = 0; i < this.length; i ++){  
        if(this[i] == suArr){
			return true;
	    } 
     } 
     return false;
}
//不重複元素構成的數組
Array.prototype.uniquelize = function(){  
     var ra = new Array();  
     for(var i = 0; i < this.length; i ++){  
        if(!ra.contains(this[i])){  
        	ra.push(this[i]);  
        }  
     }  
     return ra;  
};
//兩個數組的補集 
Array.complement = function(a, b){  
     return Array.minus(Array.union(a, b),Array.intersect(a, b));  
};
//兩個數組的交集  
Array.intersect = function(a, b){  
     return a.uniquelize().each(function(o){return b.contains(o) ? o : null});  
}; 
//兩個數組的差集
Array.minus = function(a, b){  
     return a.uniquelize().each(function(o){return b.contains(o) ? null : o});  
}; 
//兩個數組並集
Array.union = function(a, b){  
     return a.concat(b).uniquelize();  
};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章