存储多维数据(转)

怎样存储多组相关的数据
解决办法
使用多维数组存储
讨论
除了一维数组,还可以创建多维数组,比如beginGradientFill() 方法使用三个平行数组表示colors, alphas, 和ratios ,每个数组都有相同的下标。

创建平行数组,然后操作同一下标的元素,使用平行数组,很容易访问同一下标的相关元素,比如:

var colors:Array = [ "maroon""beige""blue""gray"];
var years:Array = [1997, 2000, 1985, 1983];
var makes:Array = [ "Honda""Chrysler""Mercedes""Fiat"];
// 循环这些数组,因此数组的长度相同,可以用任何一个数组的length属性,下面的例子使用了
//makes.length.
for ( var i: int = 0; i < makes.length; i++) {
trace( "A " + colors[i] +  " " +
years[i] +  " " +
makes[i]);
// 显示:
// A maroon 1997 Honda
// A beige 2000 Chrysler
// A blue 1985 Mercedes
// A gray 1983 Fiat
}


需要注意的是,如果改变了数组长度,必须同时修改其他数组。

另一种方法就是创建多维数组,它是数组的数组

// 创建数组cars,然后用数组组装填充,每个元素都是数组包含3个元素(color, year, make).
var cars:Array =  new Array();
cars.push([ "maroon", 1997,  "Honda"]);
cars.push([ "beige", 2000,  "Chrysler"]);
cars.push([ "blue", 1985,  "Mercedes"]);
cars.push([ "gray", 1983,  "Fiat"]);
// 循环遍历数组
for ( var i: int = 0; i < cars.length; i++) {
// 显示:
// A maroon 1997 Honda
// A beige 2000 Chrysler
// A blue 1985 Mercedes
// A gray 1983 Fiat
TRace( "A " + cars[i][0] +  " " +
cars[i][1] +  " " +
cars[i][2]);
}


下面的代码用二重循环遍历二维数组:

for ( var i: int = 0; i < cars.length; i++) {
for ( var j: int = 0; j < cars[i].length; j++) {
TRace( "Element [" + i +  "][" + j +  "] contains: " +
cars[i][j]);
}
}


从上面的例子来看,很难区别cars[i][0] 和cars[i][j]。但如果任何数组的长度发生变化这时cars[i][0]这种表示就很被动,需要修改代码才行。

另外对象数组的使用也很类似,只是多了个名称属性。对象数组用名称属性代替数字下标来索引元素:

// 创建数组cars,填充对象
// 每个对象有个make 属性,year 属性和color 属性
var cars:Array =  new Array();
cars.push({make:  "Honda", year: 1997, color:  "maroon"});
cars.push({make:  "Chrysler", year: 2000, color:  "beige"});
cars.push({make:  "Mercedes", year: 1985, color:  "blue"});
cars.push({make:  "Fiat", year: 1983, color:  "gray"});
// 遍历数组
for ( var i: int = 0; i < cars.length; i++) {
trace( "A " + cars[i].color +  " " +
cars[i].year +  " " +
cars[i].make);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值