AS3.0 数组类(Array)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包 顶级
类 public dynamic class Array
继承 Array - Object
使用 Array 类可以访问和操作数组。 Array 索引从零开始,这意味着数组中的第一个元素为 [0],第二个元素为 [1],依此类推。 要创建 Array 对象,可以使用 new Array() 构造函数。 Array() 还可以作为函数调用。 此外,还可以使用数组访问 ([]) 运算符初始化数组或访问数组元素。
//用new关键字创建Array类的对象
var arr:Array=new Array()
//用数组访问符创建Array类的对象
var brr:Array=[];
您可以在数组元素中存储各种各样的数据类型,包括数字、字符串、对象,甚至是其它数组。 您可以创建一个多维 数组,方法是创建一个索引数组,然后给它的每个元素分配不同的索引数组。 这样的数组被视为是多维的,原因是它可用于表示表中的数据。
数组是稀疏数组,这意味着可能存在这样的情况:在索引 0 处有一个元素,在索引 5 处有另一个元素,而这两个元素之间的索引位置却是空的。
Array类是引用类型,是通过引用来赋值的。
Array类还可以自由添加私有属性和方法。
公共属性:length
数组的长度,指定数组中的元素的个数。
公共方法
一、构造函数:Array()
1、创建包含指定元素的数组
var arr:Array=new Array("a","b","c",1,2,3)
2、创建指定长度的数组
var arr:Array=new Array(5)
二、concat()方法
将参数中指定的元素与数组中的元素连接,并创建新的数组。此方法将返回一个新数组。
参数
args — 要连接到新数组中的任意数据类型的值(如数字、元素或字符串)。 如果未传递任何值,则新数组将是原始数组的副本。
例子
var arr:Array=[1,2,3]
var brr:Array=arr.concat("a");
var crr:Array=["a","b","c"]
brr=arr.concat(crr)
三、every()方法
对数组中的每一项执行测试函数,直到获得对指定的函数返回 false 的项。 使用此方法可确定数组中的所有项是否满足某一条件,如具有的值小于某一特定数值。
此函数将返回一个Boolean值。
参数
1、callback:Function — 要对数组中的每一项运行的函数。 该函数可以包含简单的比较操作(例如,item < 20)或者更复杂的操作,并用三个参数来调用,即项值、项索引和 Array 对象:
function callback(item:*, index:int, array:Array):Boolean;
2、thisObject:* (default = null) — 用作函数的 this 的对象。
例子
var arr:Array = [1,2,3];
var brr:Array=[1,2,3,"a"];
function callback(item:*,index:int,arr:Array):Boolean
{
return item is Number;
}
var bl:Boolean=arr.every(callback);
trace(bl);
bl=brr.every(callback);
trace(bl)
四、filter()方法
对数组中的每一项执行测试函数,并构造一个新数组,其中的所有项都对指定的函数返回 true。 如果某项返回 false,
则新数组中将不包含此项。
此函数将返回一个Boolean;
参数
1、callback:Function — 要对数组中的每一项运行的函数。 该函数可以包含简单的比较操作(例如,item < 20)或者更复杂的操作,并用三个参数来调用,即项值、项索引和 Array 对象:
function callback(item:*, index:int, array:Array):Boolean;
2、thisObject:* (default = null) — 用作函数的 this 的对象。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
function callback(item:*,index:int,arr:Array):Boolean
{
return item>4;
}
var brr:Array = arr.filter(callback);
trace(brr);
五、forEach()
对数组中的每一项执行测试函数。
参数
callback:Function — 要对数组中的每一项运行的测试函数。
thisObject:* (default = null) — 用作函数的 this 的对象。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
function callback(item:*,index:int,arr:Array)
{
trace("mode"+index);
}
arr.forEach(callback);
六、indexOf();(lastIndexOf())
使用全等运算符 (===) 搜索数组中的项,并返回项的索引位置。
此函数将返回一个int类型的值。
参数
1、searchElement:* — 要在数组中查找的项。
2、fromIndex:int (default = 0) — 数组中的位置,从该位置开始搜索项。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
var i:int=arr.indexOf(5);
trace(i);
说明:第二个参数默认值为0,如果该参数设置的位置比要查找的项的索引号大,或没找到要查找的项,运行后将返回-1.
七、join():String
将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串。 嵌套数组总是以逗号 (,) 分隔,而不使用传递给 join() 方法的分隔符分隔。
此方法将返回一个字符串(String);
参数
sep:* (default = NaN) — 在返回字符串中分隔数组元素的字符或字符串。 如果省略此参数,则使用逗号作为默认分隔符。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
var str:String = arr.join("\n");
trace(str);
八、map()
对数组中的每一项执行函数并构造一个新数组,其中包含与原始数组中的每一项的函数结果相对应的项。
此函数将返回一个新数组。
参数
callback:Function — 要对数组中的每一项运行的函数。
thisObject:* (default = null) — 用作函数的 this 的对象。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
function callback(item:*,index:int,arr:Array):String
{
return item + "a"+index
}
var brr:Array=arr.map(callback);
trace(brr)
九、pop()
删除数组中最后一个元素,并返回该元素的值。返回值的类型为该元素的类型。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
var a:Object=arr.pop();
trace(a)
十、push();
将一个或多个元素添加到数组的结尾,并返回该数组的新长度。
参数
args — 要追加到数组中的一个
或多个值。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
var index:int=arr.push("a")
trace(index);
trace(arr);
十一、reverse()
将数组倒置,返回一个新数组。
十二、shift();
删除数组中的第一个元素,并返回该元素。 其余数组元素将从其原始位置 i 移至 i-1。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
arr.shift();
trace(arr)
十三、slice();
返回由原始数组中某一范围的元素构成的新数组,而不修改原始数组。 返回的数组包括 startIndex 元素以及从其开始到 endIndex 元素(但不包括该元素)的所有元素。
如果您没有传递任何参数,则创建原始数组的一个副本。
参数
startIndex:int (default = 0) — 一个数字,指定片段起始点的索引。 如果 startIndex 是负数,则起始点从数组的结尾开始,其中 -1 指的是最后一个元素。
endIndex:int (default = 16777215) — 一个数字,指定片段终点的索引。 如果省略此参数,则片段包括数组中从开头到结尾的所有元素。 如果 endIndex 是负数,则终点从数组的结尾指定,其中 -1 指的是最后一个元素。
例子
var arr:Array = [1,2,3,4,5,6,7,8];
var brr:Array=arr.slice(4,arr.length);
trace(arr);
trace(brr);
十四、some()
AS3 function some(callback:Function, thisObject:* = null):Boolean
对数组中的每一项执行测试函数,直到获得返回 true 的项。 使用此方法确定数组中的所有项是否满足条件,如具有小于某一特定数值的值。
十五、sort();
AS3 function sort(... args):Array
对数组中的元素进行排序。
例子1
var arr:Array = [9,4,7,2,1,3,6,5,8];
function test(a:Number,b:Number):int
{
if (a>b)
{
return 1;
}
else if (a{
return -1;
}
else
{
return 0;
}
}
arr.sort(test);
//arr.sort(test,2);
trace(arr);
说明:
若返回值为负,则表示 A 在排序后的序列中出现在 B 之前。
若返回值为 0,则表示 A 和 B 具有相同的排序顺序。
若返回值为正,则表示 A 在排序后的序列中出现在 B 之后。
例子2
var arr:Array = [];
for (var i:int=0; i<5; i++)
{
var mc:MovieClip=new MovieClip();
mc.indexs = int(Math.random() * 100);
= "mc" + String(i);
arr.push(mc);
}
var brr:Array = arr.sort(test);
for (i=0; i<5; i++)
{
trace(arr[i].name,brr[i].indexs);
}
function test(a:Object,b:Object):int
{
if (a.indexs > b.indexs)
{
return 1;
}
else if (a.indexs
return -1;
}
else
{
return 0;
}
}
例子3
var arr:Array = [9,4,7,2,1,3,6,5,8];
arr.sort(16);
trace(arr);
arr.sort(18)
trace(arr)
说明
CASEINSENSITIVE : uint = 1 [静态] 指定 Array 类排序方法为不区分大小写的排序。
DESCENDING : uint = 2 [静态] 指定 Array 类排序方法为降序排序
NUMERIC : uint = 16 [静态] 指定 Array 类排序方法为数值(而不是字符串)
排序。
RETURNINDEXEDARRAY : uint = 8 [静态] 指定排序返回的数组包含数组索引。
UNIQUESORT : uint = 4 [静态] 指定 Array 类排序方法的唯一排序要求。
十六、sortOn();
AS3 function sortOn(fieldName:Object, options:Object = null):Array
根据数组中的一个或多个字段对数组中的元素进行排序。 数组应具有下列特性:
参数
fieldName:Object — 一个字符串,它标识要用作排序值的字段,或一个数组,其中的第一个元素表示主排序字段,第二个元素表示第二排序字段,依此类推。
options:Object (default = null) — 所定义常量的一个或多个数字或名称
例子
var arr:Array = [];
for (var i:int=0; i<5; i++)
{
var mc:MovieClip=new MovieClip();
mc.indexs = int(Math.random() * 100);
= "mc" + String(i);
arr.push(mc);
}
var brr:Array=arr.sortOn("indexs",18)
for (i=0; i<5; i++)
{
trace(arr[i].name,brr[i].indexs);
}