转自wersling的BLOG,觉的以后应该能用到,做个记号:) http://www.wersling.com/blog/more.asp?name=wersling&id=91 /* * @class com.wersling.types.CArray * @author Wersling * @version 1.0 * @description 扩展Array类 * @usage <pre>com.wersling.types.CArray.getMin(_Arr);</pre> * ----------------------------------------------- * Latest update: 2005-4-20 * ----------------------------------------------- * * ----------------------------------------------- * Functions: * 1. getMin(_Arr) * 3. getMax(_Arr) * 4. map(_Arr,fun) * 5. filter(_Arr,fun) * 6. shuffle(_Arr) * 7. pairSums(_Arr,n) * 8. delRepeat(_Arr) * 9. delAssign(_Arr : Array, s) * 10. delFront(_Arr : Array, s) * 11. delAfter(_Arr : Array, s) * -------------------------------------------------- */ class com.wersling.types.CArray { //最小值 public static function getMin (_Arr : Array) { var min : Number = _Arr [0]; var j : Number; for (j in _Arr) if (_Arr [j] < min) min = _Arr [j]; return min; } //最大值 public static function getMax (_Arr : Array) { var max : Number = _Arr [0]; var j : Number; for (var i in _Arr) if (_Arr [i] > max) max = _Arr [i]; return max; } //数据处理 public static function map (_Arr : Array, fun : Function) : Array { var result : Array = new Array (); for (var i in _Arr) result.push (fun (_Arr [i])); return result; } //过滤 public static function filter (_Arr : Array, fun : Function) : Array { var result : Array = new Array (); for (var i in _Arr) { if (fun (_Arr [i])) { result.push (_Arr [i]); }; } return result; } //洗牌 public static function shuffle (_Arr : Array) : Array { var len : Number = _Arr.length; var j : Number; for (j = 0; j < len; j ++) { var rand : Number = Math.floor (Math.random () * len); var temp : Number = _Arr [j]; _Arr [j] = _Arr [rand]; _Arr [rand] = temp; } return _Arr; } //查找满足两数据和为n public static function pairSums (_Arr : Array, n : Number) : Array { var l : Array = _Arr.slice (); var k : Array = new Array (); var o1 : Number; var o2 : Number; while ((o1 = l.length - 1) > 0) { for (o2 = o1; o2 -- > 0; "") { if (l [o1] + l [o2] == n) k.push ([l [o1] , l [o2]]); } l.pop (); } return k; } //查重 public static function delRepeat (_Arr : Array) : Array { var k : Array = new Array (); for (var i in _Arr) { var y = false; for (var j in k) { if (_Arr [i] == k [j]) { y = true; } } if ( ! y) { k.push (_Arr [i]) } } return k; } //删除指定的数据 public static function delAssign (_Arr : Array, s) : Array { for (var i in _Arr) { if (_Arr [i] == s) { _Arr.splice (i, 1); } } return _Arr; } //删除某数据之前的数据的数据 public static function delFront (_Arr : Array, s) : Array { for (var i = 0 ; i < _Arr.length - 1; i ++) { if (_Arr [i] == s) { var _A = _Arr.slice (i + 1, - 1); return _A; } } return _Arr; } //删除某数据之后的数据的数据 public static function delAfter (_Arr : Array, s) : Array { for (var i = 0 ; i < _Arr.length - 1; i ++) { if (_Arr [i] == s) { var _A = _Arr.slice (0, i + 1); return _A; } } return _Arr; } }
回复Comments
作者:
{commentrecontent}