水之原 发表于 2012-12-22 21:26:12

javascript常用数组工具集合

<div id="cnblogs_post_body"><div class="cnblogs_code">/*** each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数* 这个迭代函数依次将集合的每一个元素和可选参数用函数进行计算,并将计算得的结果集返回{%example<script>   var a = .each(function(x){return x > 2 ? x : null});   var b = .each(function(x){return x < 0 ? x : null});   alert(a);   alert(b);</script>%}* @param {Function} fn 进行迭代判定的函数* @param more ... 零个或多个可选的用户自定义参数* @returns {Array} 结果集,如果没有结果,返回空集*/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].concat(args));         if(res != null) a.push(res);   }   return a;};/*** 得到一个数组不重复的元素集合<br/>* 唯一化一个数组* @returns {Array} 由不重复元素构成的数组*/Array.prototype.uniquelize = function(){   var ra = new Array();   for(var i = 0; i < this.length; i ++){         if(!ra.contains(this)){            ra.push(this);         }   }   return ra;};/*** 求两个集合的补集{%example<script>   var a = ;   var b = ;   alert(Array.complement(a,b));</script>%}* @param {Array} a 集合A* @param {Array} b 集合B* @returns {Array} 两个集合的补集*/Array.complement = function(a, b){   return Array.minus(Array.union(a, b),Array.intersect(a, b));};/*** 求两个集合的交集{%example<script>   var a = ;   var b = ;   alert(Array.intersect(a,b));</script>%}* @param {Array} a 集合A* @param {Array} b 集合B* @returns {Array} 两个集合的交集*/Array.intersect = function(a, b){   return a.uniquelize().each(function(o){return b.contains(o) ? o : null});};/*** 求两个集合的差集{%example<script>   var a = ;   var b = ;   alert(Array.minus(a,b));</script>%}* @param {Array} a 集合A* @param {Array} b 集合B* @returns {Array} 两个集合的差集*/Array.minus = function(a, b){   return a.uniquelize().each(function(o){return b.contains(o) ? null : o});};/*** 求两个集合的并集{%example<script>   var a = ;   var b = ;   alert(Array.union(a,b));</script>%}* @param {Array} a 集合A* @param {Array} b 集合B* @returns {Array} 两个集合的并集*/Array.union = function(a, b){   return a.concat(b).uniquelize();};
页: [1]
查看完整版本: javascript常用数组工具集合