javascript常用数组工具集合
2012-12-02 00:20
531 查看
/** * each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数 * 这个迭代函数依次将集合的每一个元素和可选参数用函数进行计算,并将计算得的结果集返回 {%example <script> var a = [1,2,3,4].each(function(x){return x > 2 ? x : null}); var b = [1,2,3,4].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],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[i])){ ra.push(this[i]); } } return ra; }; /** * 求两个集合的补集 {%example <script> var a = [1,2,3,4]; var b = [3,4,5,6]; 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 = [1,2,3,4]; var b = [3,4,5,6]; 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 = [1,2,3,4]; var b = [3,4,5,6]; 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 = [1,2,3,4]; var b = [3,4,5,6]; 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(); };
相关文章推荐
- Javascript数组的常用操作
- JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
- 【转】谈谈JavaScript中的数组、集合及效率
- 数组和常用集合之间的相互转换
- javascript是最常用的脚本语言100多个基础常用JS函数和语法集合大全
- Javascript 小工具, StringToArray(字串转数组) By shawl.qiu
- Javascript中数组的常用方法
- javascript中数组(Array)对象和字符串(String)对象的常用方法总结
- cocos2d游戏开发,常用工具集合
- 数组与集合的应用之常用集合的使用(用List集合传递学生信息)
- 学习一下C#中常用集合和数组的区别,虽然很基础,但感觉很实用
- javascript数组常用方法(一)
- javascript的数组和常用函数详解
- JavaScript里常用的的数组函数和字符串函数
- JavaScript 数组详解以及常用方法
- javascript之数组对象与数组常用方法
- javascript数组操作用法集合
- JavaScript1.6数组新特性和JQuery的几个工具方法
- javascript中数组的常用方法
- JavaScript常用代码集合(转自黑马程序员)