大型2D数组始终返回未定义

时间:2015-06-15 23:33:29

标签: actionscript-2

我有一个绝对不会返回我需要的值的2D数组。我从这个数组开始:

var userdata:Array = new Array(new Array(1000),new Array(4))

然后我尝试将所有值设置为0,其中包含:

this.onLoad()
{
    for (i = 0; i < 1000; i++)
        {
            for (j = 0; j < 4; j++)
            {
                userdata[i][j] = 0
                trace(userdata[i][j])
            }
        }
}

此跟踪返回8 0s然后返回大量“未定义”s。我无法弄清楚为什么会这样。我也尝试这样的事情:

userdata[5][0] = 0
trace(userdata[5][0])

它仍然返回“undefined”。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

要理解为什么你只有8&#34;零&#34;和许多未定义的值,让我们从你的数组声明开始:

addObserver

在这里你应该明白,你已经创建了一个只有2个单元格的数组(这就是为什么_var userdata:Array = new Array(new Array(1000),new Array(4)); ):第一个单元格是一个包含1000个元素的数组,第二个单元格是第二个单元格是一个包含4个元素的数组,这就是为什么你只能设置8个项目(2 x 4):第一个单元格的1000个中的第4个项目+第2个中的4个中的第4个项目细胞

让我们回到你的问题,你想要创建一个1000行和4列的多维数组。首先,我们创建一个包含1000行(单元格)的数组:

userdata[5][0]

然后,我们为每一行创建4列,并设置如下值:

undefined

然后我们可以验证我们的数组:

var a:Array = [1000];  // you can write it : new Array(1000);

希望可以提供帮助。