大型二维数组始终 Returns 未定义
Large 2D Array Always Returns Undefined
我有一个二维数组,绝对不会 return 我需要的值。我从这个数组开始:
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])
}
}
}
这条轨迹 returns 8 个 0,然后是大量的 "undefined"s。我不明白为什么会这样。我也尝试这样的事情:
userdata[5][0] = 0
trace(userdata[5][0])
它仍然 returns "undefined"。有人可以帮忙吗?
要理解为什么只有 8 个 "zeros" 和许多未定义的值,让我们从数组声明开始:
var userdata:Array = new Array(new Array(1000),new Array(4));
在这里你应该明白你已经创建了一个只有 2 个单元格的数组(这就是 userdata[5][0]
是 undefined
的原因):第一个单元格是一个包含 1000 个元素的数组,第二个是一个4 个元素的数组,这就是为什么你只能设置 8 个项目(2 x 4):第一个单元格的 1000 个中的第 4 个第一个项目 + 第二个单元格的第 4 个第一个项目。
让我们return回答您的问题,您想要创建一个包含 1000 行和 4 列的多维数组。首先,我们创建一个包含 1000 行(单元格)的数组:
var a:Array = [1000]; // you can write it : new Array(1000);
然后,我们为每一行创建 4 列,并设置如下值:
var i:Number, j:Number;
for (i = 0; i < 1000; i++)
{
// create the 4 columns
a[i] = [4]; // you can write it : a[i] = new Array(4);
for (j = 0; j < 4; j++)
{
a[i][j] = 0;
}
}
然后我们可以验证我们的数组:
trace(a[0][0]); // gives : 0
trace(a[255][2]); // gives : 0
trace(a[255][5]); // gives : undefined, because we have only 4 columns
trace(a[1500][0]); // gives : undefined, because we have only 1000 rows
希望能帮到你。
我有一个二维数组,绝对不会 return 我需要的值。我从这个数组开始:
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])
}
}
}
这条轨迹 returns 8 个 0,然后是大量的 "undefined"s。我不明白为什么会这样。我也尝试这样的事情:
userdata[5][0] = 0
trace(userdata[5][0])
它仍然 returns "undefined"。有人可以帮忙吗?
要理解为什么只有 8 个 "zeros" 和许多未定义的值,让我们从数组声明开始:
var userdata:Array = new Array(new Array(1000),new Array(4));
在这里你应该明白你已经创建了一个只有 2 个单元格的数组(这就是 userdata[5][0]
是 undefined
的原因):第一个单元格是一个包含 1000 个元素的数组,第二个是一个4 个元素的数组,这就是为什么你只能设置 8 个项目(2 x 4):第一个单元格的 1000 个中的第 4 个第一个项目 + 第二个单元格的第 4 个第一个项目。
让我们return回答您的问题,您想要创建一个包含 1000 行和 4 列的多维数组。首先,我们创建一个包含 1000 行(单元格)的数组:
var a:Array = [1000]; // you can write it : new Array(1000);
然后,我们为每一行创建 4 列,并设置如下值:
var i:Number, j:Number;
for (i = 0; i < 1000; i++)
{
// create the 4 columns
a[i] = [4]; // you can write it : a[i] = new Array(4);
for (j = 0; j < 4; j++)
{
a[i][j] = 0;
}
}
然后我们可以验证我们的数组:
trace(a[0][0]); // gives : 0
trace(a[255][2]); // gives : 0
trace(a[255][5]); // gives : undefined, because we have only 4 columns
trace(a[1500][0]); // gives : undefined, because we have only 1000 rows
希望能帮到你。