as3中数组的一些用法
来源:互联网 发布:聚划算往期数据 编辑:程序博客网 时间:2024/05/17 23:45
首先值得一提的是AS3的 Array 有了像 String 一样的 indexOf() 和 lastIndexOf() 。另外增加了几个很有用的 Method。
every(callback:Function, thisObject:* = null):Boolean
检测是否数组所有元素都满足 callback 方法指定的条件。
some(callback:Function, thisObject:* = null):Boolean
检测数组中是否有元素满足 callback 方法指定的条件。
filter(callback:Function, thisObject:* = null):Array
根据 callback 方法指定的条件过滤数组,返回由符合条件的元素组成的新数组
map(callback:Function, thisObject:* = null):Array
数组的每一个元素执行 callback 方法,返回由对应的结果组成的新数组
forEach(callback:Function, thisObject:* = null):void
数组的每一个元素执行 callback 方法,不返回任何值
第二个参数 thisObject 是第一个参数 callback 的执行范围,即方法内部的 this ,一般不需指定。
callback 的参数也都是一样的
function callback(item:*, index:int, array:Array)
item 就是数组的每一个元素,如果数组元素类型统一就指明该类型,否则用 * 。index是数组当前元素的索引,array是操作的数组。参数名称可以任意起。如果只使用第一个参数这些方法都不改变原数组,使用后两个参数则可对原数组进行操作。不推荐这样做。
程序代码
public function TestArray(){
var arr1:Array = [1,3,5,7,9,11];
//是否所有元素是两位数(false)
trace(arr1.every(isDoubleDigit));
//是否有两位数的元素(true)
trace(arr1.some(isDoubleDigit));
//arr1数组元素执行doubleObject方法的返回值组成新的arr2数组
var arr2:Array = arr1.map(doubleObject);
//arr3是arr2中满足 bigDouble 条件的元素组成的新数组
var arr3:Array = arr2.filter(bigDouble);
trace("arr1:",arr1);
trace("arr2 double :");
arr2.forEach(traceDouble);
trace("arr3 double :");
arr3.forEach(traceDouble);
//double方法使用了后两个参数,直接修改了原数组
arr1.forEach(double);
trace("arr1:",arr1);
}
private function isDoubleDigit(n:int,i:int,a:Array):Boolean{
return n > 10;
}
private function doubleObject(n:int,i:int,a:Array):Object{
return {double:n * 2};
}
private function bigDouble(o:Object,i:int,a:Array):Boolean{
return o.double > 10;
}
private function traceDouble(o:Object,i:int,a:Array):void{
trace(o.double);
}
private function double(n:int,i:int,a:Array):Object{
a[i] *= 2;
}
输出:
程序代码
false
true
arr1: 1,3,5,7,9,11
arr2 double :
2
6
10
14
18
22
arr3 double :
14
18
22
arr1: 2,6,10,14,18,22
every(callback:Function, thisObject:* = null):Boolean
检测是否数组所有元素都满足 callback 方法指定的条件。
some(callback:Function, thisObject:* = null):Boolean
检测数组中是否有元素满足 callback 方法指定的条件。
filter(callback:Function, thisObject:* = null):Array
根据 callback 方法指定的条件过滤数组,返回由符合条件的元素组成的新数组
map(callback:Function, thisObject:* = null):Array
数组的每一个元素执行 callback 方法,返回由对应的结果组成的新数组
forEach(callback:Function, thisObject:* = null):void
数组的每一个元素执行 callback 方法,不返回任何值
第二个参数 thisObject 是第一个参数 callback 的执行范围,即方法内部的 this ,一般不需指定。
callback 的参数也都是一样的
function callback(item:*, index:int, array:Array)
item 就是数组的每一个元素,如果数组元素类型统一就指明该类型,否则用 * 。index是数组当前元素的索引,array是操作的数组。参数名称可以任意起。如果只使用第一个参数这些方法都不改变原数组,使用后两个参数则可对原数组进行操作。不推荐这样做。
程序代码
public function TestArray(){
var arr1:Array = [1,3,5,7,9,11];
//是否所有元素是两位数(false)
trace(arr1.every(isDoubleDigit));
//是否有两位数的元素(true)
trace(arr1.some(isDoubleDigit));
//arr1数组元素执行doubleObject方法的返回值组成新的arr2数组
var arr2:Array = arr1.map(doubleObject);
//arr3是arr2中满足 bigDouble 条件的元素组成的新数组
var arr3:Array = arr2.filter(bigDouble);
trace("arr1:",arr1);
trace("arr2 double :");
arr2.forEach(traceDouble);
trace("arr3 double :");
arr3.forEach(traceDouble);
//double方法使用了后两个参数,直接修改了原数组
arr1.forEach(double);
trace("arr1:",arr1);
}
private function isDoubleDigit(n:int,i:int,a:Array):Boolean{
return n > 10;
}
private function doubleObject(n:int,i:int,a:Array):Object{
return {double:n * 2};
}
private function bigDouble(o:Object,i:int,a:Array):Boolean{
return o.double > 10;
}
private function traceDouble(o:Object,i:int,a:Array):void{
trace(o.double);
}
private function double(n:int,i:int,a:Array):Object{
a[i] *= 2;
}
输出:
程序代码
false
true
arr1: 1,3,5,7,9,11
arr2 double :
2
6
10
14
18
22
arr3 double :
14
18
22
arr1: 2,6,10,14,18,22
- as3中数组的一些用法
- AS3 的一些用法
- AS3中一些比较特别的用法(用到后慢慢更新)
- AS3中io操作的一些安全问题
- AS3.0中netstream的一些不足之处!!!
- As3中删除数组的重复值
- As3中删除数组的重复值
- as3 中get和set的用法
- AS3中 is和as的用法
- as3 中get和set的用法
- AS3.0中XML的基础用法
- OC_数组 NSSArry中一些重要的用法
- Python中数组的一些特殊用法-1
- 【C】数组中sizeof的一些常见用法!!!
- as3中Array数组复制、数组清空的方法
- AS3中的数组与js中数组的区别
- as3的一些测试
- AS3 的一些优化
- Wi-Fi术语总结
- 用dd测试SD卡的读写速度
- AS3关闭声音时音量递减直至消失
- 科研初体验
- HEVC 中主要LCU分析函数xCompressCU说明
- as3中数组的一些用法
- 跳投要点-附上精彩的gif跳投图片
- 无法启动SQL Server 2005中的SQL Server(MSSQLSERVER)服务--zt
- 在Eclipse里关联Android源码的
- 批处理经典入门教程!
- 取N个不重复的随机数
- php实例 生活便利小代码,拍照后,批量递归缩放目录图片.
- as3中平铺背景
- SQLite3 使用教学