欢迎进入IT起步网社区,中国最大的IT新手技术交流平台>>进入
首先值得一提的是AS3的Array有了像String一样的indexOf()和lastIndexOf()。另外增加了几个很有用的Method。 wwwxrend.com bbs.xrend.com
every(callback:Function,thisObject:*=null):Boolean
检测是否数组所有元素都满足callback方法指定的条件。 IT blog wordpress.xrend.com
some(callback:Function,thisObject:*=null):Boolean
检测数组中是否有元素满足callback方法指定的条件。
IT起步网
filter(callback:Function,thisObject:*=null):Array
根据callback方法指定的条件过滤数组,返回由符合条件的元素组成的新数组
map(callback:Function,thisObject:*=null):Array
数组的每一个元素执行callback方法,返回由对应的结果组成的新数组
IT起步网 www.xrend.com
forEach(callback:Function,thisObject:*=null):void
数组的每一个元素执行callback方法,不返回任何值
第二个参数thisObject是第一个参数callback的执行范围,即方法内部的this,一般不需指定。callback的参数也都是一样的 IT blog wordpress.xrend.com
functioncallback(item:*,index:int,array:Array)
item就是数组的每一个元素,如果数组元素类型统一就指明该类型,否则用*。index是数组当前元素的索引,array是操作的数组。参数名称可以任意起。如果只使用第一个参数这些方法都不改变原数组,使用后两个参数则可对原数组进行操作。不推荐这样做。
IT起步社区 bbs.xrend.com
| publicfunctionTestArray(){ vararr1:Array=[1,3,5,7,9,11]; //是否所有元素是两位数(false) trace(arr1.every(isDoubleDigit)); //是否有两位数的元素(true) trace(arr1.some(isDoubleDigit)); //arr1数组元素执行doubleObject方法的返回值组成新的arr2数组 vararr2:Array=arr1.map(doubleObject); //arr3是arr2中满足bigDouble条件的元素组成的新数组 vararr3:Array=arr2.filter(bigDouble); trace("arr1:",arr1); trace("arr2double:"); arr2.forEach(traceDouble); trace("arr3double:"); arr3.forEach(traceDouble); //double方法使用了后两个参数,直接修改了原数组 wwwxrend.com bbs.xrend.com arr1.forEach(double); trace("arr1:",arr1); } privatefunctionisDoubleDigit(n:int,i:int,a:Array):Boolean{ returnn>10; } privatefunctiondoubleObject(n:int,i:int,a:Array):Object{ return{double:n*2}; } privatefunctionbigDouble(o:Object,i:int,a:Array):Boolean{ returno.double>10; } privatefunctiontraceDouble(o:Object,i:int,a:Array):void{ trace(o.double); } privatefunctiondouble(n:int,i:int,a:Array):Object{ a[i]*=2; } |
输出:
wwwxrend.com bbs.xrend.com
false
true
arr1:1,3,5,7,9,11
arr2double:
2
6
10
14
18
22
arr3double:
14
18
22
arr1:2,6,10,14,18,22 IT起步社区 bbs.xrend.com



