Flash 使用多维数组的解决办法 不指定

Flash 使用多维数组的解决办法:

方法1:
my_ary = new Array();//本句 不可忽略!!简写成my_ary = [];效果一样
my_ary[1] = new Array(0,1,2);
my_ary[2] = new Array(2,3,4,5);//这里直接对他们赋值
trace(my_ary[2][1])//得3
//总结: 法一 比较朴实,调理也比较明朗,适合对已经确定了数组的具体值的时候使用


方法2:push
a_array = new Array(10, 20, 30, 40, 50);//简写成a_array = [10, 20, 30, 40, 50]效果一样
b_array = new Array(1, 2, 3, 4, 5);
c_array = new Array();
c_array.push(a_array);
c_array.push(b_array);
trace(c_array)//得到 10,20,30,40,50,1,2,3,4,5
trace(c_array[1][2])//得到 3
//总结法二: 很像是法一 一种逆向,先定义 那些用到的数,在考虑把它们加在什么位置


方法3:多层嵌套
myArray=new Array(new Array,new Array);
for(i=0;i<2;i++){
 for(j=0;j<4;j++){
   myArray[i][j]=i+j;
 }
}
trace(myArray);//得到 0,1,2,3,1,2,3,4
trace(myArray[1][3])//得到 4
//总结法三: 可以利用它的[[],[]]这种嵌套特性,来构造很复杂的东西,
//但是[[],[]]中每多一个“,”才会多一个元素,[ [[[]]],[[[]]],[[[]]] ]这只是生明了3个4维的数据
//在结合for循环的时候 这种2维方法 可以形成一些特定算法下的数镇,比如单位矩阵(前提i=j)


方法4:直接定义法
team_member = [[ "SiC", "无业游民", 1011 ],
[ "ReDo", "游戏杀手", 2172 ],
[ "Crab_D", "帮倒忙", 1012 ]];
trace(team_member.join("\n"));
//显示内容为
//SiC,无业游民,1011
//ReDo,游戏杀手,2172
//Crab_D,帮倒忙,1012
//总结法四:直接在定义中生明具体值,是进一步运用3的嵌套,不多讲

方法5:复合方法

var a=[];
for(var i=0;i<2;i++){
 a[i]=[];
 for(var j=0;j<2;j++){
   a[i][j]=[];
   for(var k=0;k<2;k++){
     a[i][j][k]=i+"."+j+"."+k;
     trace(a[i][j][k]);
   }
 }
}
/*输出为0.0.0
0.0.1
0.1.0
0.1.1
1.0.0
1.0.1
1.1.0
1.1.1
总结:这个方法 我是想不出来,大家仅作参考
*/


方法6:数组+属性,复合结构!!!
例如
this.menuItems =[{name:'parent1', sub:[{name:'parent1child1'}, {name:'parent1child2'}]}]
//实际结构为
//this.menuItems[0].name = 'parent1'
//this.menuItems[0].sub[1].name = 'parent1child2');
/*
说明:
1建立) my_arr = [ ];
2设定属性) my_arr[0] = {name:'xxxx' ,sub:[ ]};
*/
Tags: , , ,
123 说:
2006-10-16 13:33
grin
小天 说:
2006-7-15 14:01
喜欢 ,谢谢.
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]