用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
linson0116的公告
文章分类
存档

转载  AS3笔记(9)-Array 收藏

首先值得一提的是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
 

发表于 @ 2007年01月15日 15:40:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:在flex中如何使用嵌入字体 | 新一篇:理解 WSDL

  • 发表评论
  • 评论内容:
  •  
Copyright © linson0116
Powered by CSDN Blog