小菜AS3之路

2012.2.17
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数组问题

Posted on 2012-03-19 16:03  枫雨  阅读(175)  评论(0)    收藏  举报

数组问题引用:

var _mapData:Array = [];
var row:Array = [0,0,0,0,0,0];

for (var j:int = 0; j < 6; j++) {
	_mapData.push(row);
}
_mapData[0][5] = 1;
_mapData[1][5] = 2;
trace(_mapData[0][5]);
trace(_mapData[1][5]);

trace(_mapData[0][5]);和trace(_mapData[1][5]);的结果都是2,这明显不是预期的结果!
那到底是怎么回事呢,想来想去,忽然发现数组是引用类型的!!
所以最后_mapData是
[0,0,0,0,0,2]x6,
而不是预期的:
[0,0,0,0,0,1],
[0,0,0,0,0,2],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[0,0,0,0,0,0],
代码修改为:

var _mapData:Array = [];
for (var j:int = 0; j < 6; j++) {
        var row:Array = [0,0,0,0,0,0];
	_mapData.push(row);
}
_mapData[0][5] = 1;
_mapData[1][5] = 2;
trace(_mapData[0][5]);
trace(_mapData[1][5]);

就可以达到预期的效果了。