+ -
当前位置:首页 → 问答吧 → 多维数组的问题,请高手指教!!!

多维数组的问题,请高手指教!!!

时间:2011-02-11

来源:互联网

var gridSize:Number = 3;
var mainArr:Array = new Array(gridSize);
var i:Number;
var j:Number;
for (i = 0; i < gridSize; i++) {
    mainArr[i] = new Array(gridSize);
    for (j = 0; j < gridSize; j++) {
        mainArr[i][j] = "[" + i + "][" + j + "]";
    }
}
trace(mainArr);

运行以上语句,输出结果为:
[0][0],[0][1],[0][2],[1][0],[1][1],[1][2],[2][0],[2][1],[2][2]
注销掉trace(mainArr);加上
var outerArrayLength:Number = mainArr.length;
for (i = 0; i < outerArrayLength; i++) {
    var innerArrayLength:Number = mainArr[i].length;
    for (j = 0; j < innerArrayLength; j++) {
        trace(mainArr[i][j]);
    }
}
输出结果为:[0][0]
[0][1]
[0][2]
[1][0]
[1][1]
[1][2]
[2][0]
[2][1]
[2][2]
这是flash8帮助文件里的一个例子。我的问题是,为什么前面的是横排排列,而后面的是竖排排列。看了半天也搞不懂,请高手赐教,多谢了!!

作者: AsGuo   发布时间: 2011-02-11

因为前面是一次调用trace ,它调用Array类的toString() 方法,返回的是一列字符串


后面的是for循环  每调用一次trace 它都默认开新行输出的

作者: HSZZLZL   发布时间: 2011-02-11