在前面介绍变量时,我们说将内存分成无数个房间,用来存放数据.每个房间中只能住一个数据,比如房间中原来住着5,后来8又住进这个房间,于是一脚将5踢了出去.现在可能有这种情况,就是8住进来后,不把5踢出去,两个合租.事实上这也是允许的,这种情况就被称为数组.在房间中的各个成员被称为元素, 这一些元素的数据类型不一定是相同的.也就是说在现在开放的年代,男女合租是允许的.比如在房间中又住进去a,它是字符与前面的5、8数字的数据类型就不相同.房间中每个元素都有一个编号,我们在引用这些元素时,只需用编号就行.就如在监狱中的囚犯一样,你叫道:3365出来.于是号数为3365的囚犯出来了.咋一不小心就将数组中的元素整进监狱了呢?需要注意的是,数组中的元素编号是从0开始的.比如上面我们建的数组,5是0号、8是1号、a是2号.
创建数组:可以用下列格式创建数组
格式一:
var
数组名:Array=new Array(元素1,元素2,……)
格式二: var
数组名:Array=new Array();
数组名[0]=值;
数组名[1]=值;
…
例:我们上面建的数组,这样写
var myarray:Array=new Array(5,8,a);
或:
var myarray:Array=new Array();
myarray[0]=5;
myarray[1]=8;
myarray[2]="a";
数组元素的引用 创建数组后,就可以引用其元素了,格式为:
数组名称[元素编号];
比如要引用上述数组第一个元素的值就可以这样写:
myarray[0]
可以测试一下下面这段代码:
var myarray:Array=new Array(5,8,a);
var b=myarray[0];
trace(b);
输出应该是5.
数组是对象,即是对象,那么就有它自已的属性和方法,下面我们就来认识一下:
数组的属性:只介绍一个属性, length:这是指组数的元素的数量.如上面的数组,myarray一共有三个元素5,8,a,那么这个数组的length属性为3
例1: var myarray:Array=new Array(5,8,a);
b = myarray.length;
trace(b);
输出结果为3.
For....in循环:在上一课介绍循环语句时,说过for....in循环留到这一课来介绍.这个循环是遍历一个集合的所有对象的循环,比如遍历数组元素.就是说一个一个地方问每一个元素.数组中有几个元素它就循环几次
例2: var myarray:Array=new Array(5,8,"a");
for (var i in myarray){
b = myarray;
trace(b);
}
输出结果为:a
8
5
例3:用for循环和length属性也可以实现遍历数组:
var myarray:Array=new Array(5,8,"a")
for(var i=0;i<myarray.length;i++){
b = myarray;
trace(b);
}
输出结果为:5,8,a
可以看出,这两个循环都是将数组中的循环方问了一遍,只是结果的顺序不同.例2中应用了数组的length属性,这个属性最常用的就是用在for循环中,在以后的课程中会经常用到.
数组的方法:
concat( ):
将参数中指定的元素与数组中的元素连接,并创建新的数组。如果 value 参数指定的是数组,则连接该数组的元素而不是数组本身。
例4: var myarray:Array=new Array(5,8,"a")
myarray1 = myarray.concat("b");
for(var i in myarray1){
c = myarray1;
trace(c);
}
输出为:b
a
8
5
用myarray1 = myarray.concat("b");将b连接到myarray数组中并创建新数组myarray1.
例5: var myarray:Array=new Array(5,8,"a")
myarray1 = myarray.concat("b");
myarray2 = myarray.concat(myarray1);
for(var i in myarray2){
c = myarray1;
trace(c);
}
这时myarray2应该是:myarray2[5,8,a,5,8,a,b],这是用concat()方法将两个数组连接起来了.