我有一个绝对不会返回我需要的值的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”。任何人都可以帮忙吗?
答案 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);
希望可以提供帮助。