標籤:數組功能擴充--差集 並集 合集 去重
//數組功能擴充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(); };
本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1549392
數組功能擴充--差集,並集,合集,去重