如何访问二维数组 Actionscript 3 中的单个变量
How to access individual variable inside of a 2d array Actionscript 3
我正在尝试访问我的二维图块阵列中的单个图块
我像这样创建了我的数组:
private var map:Array = [[25,25]];
我尝试了几种方法,包括:
map[1][1] = 1;
所做的就是给我这个:
ReferenceError: Error #1056: Cannot create property 1 on Number.
我也试过:
map[[1,1]] = 1;
没有发生我能说的事情
到目前为止,我尝试过的唯一没有错误的方法是:
map[1,1] = 1;
这里的问题是这会选择整行。
任何帮助将不胜感激..谢谢!
这不是创建二维数组的正确方法:
private var map:Array = [[25,25]];
这个数组包含一个包含两个元素的数组。您不能像这样寻址到第二个元素:
map[1][1] = 1;
因为map
的第二个元素(数组)不存在
您可以这样创建二维数组:
var map:Array = [];
for (var i:int = 0; i < rows; i++)
{
map[i] = [];// this line adds new row to the 2D array
// To fill the array by zeros add next loop
for (var j:int = 0; j < cols; j++)
{
map[i][j] = 0;
}
}
首先,我认为要得到您问题中提到的错误,您的数组应该如下所示:
var map:Array = [
[25, 25], // map[0] = [25, 25] ( array of two elements )
35 // map[1] = 35 ( just a simple number )
];
所以,如果你写:
trace(typeof map[1]); // gives : number
你会得到:number
,这就是你不能正确的原因:map[1][1] = value;
你得到 #1056
错误是正常的。
在这里,我不知道你的意思是将值 1
分配给 map[0]
的第二个 25
还是你真的想添加或编辑 map[1][1]
,在第一种情况下,您可以简单地写:
map[0][1] = 1; // gives : map[0] = [25, 1]
在第二种情况下,你可以这样做:
map[1] = [any_other_value, 1]; // gives : map[1] = [any_other_value, 1]
最后一句话,忘记你有一个错误并假设你的 map
数组只是:
var map:Array = [
[25, 25]
];
这里不能也写map[1][1] = value;
,为什么?让我们使用相同的方法:
trace(map[1]); // gives : undefined
所以肯定不能将 属性 添加到 undefined
,这就是为什么要写:
map[1][1] = value;
您将收到 #1010
错误:"undefined has no properties. ".
当然这里要先创建map[1]
:
map[1] = []; // or directly map[1] = [any_other_value, value]
然后:
map[1][1] = value;
希望能帮到你。
我正在尝试访问我的二维图块阵列中的单个图块 我像这样创建了我的数组:
private var map:Array = [[25,25]];
我尝试了几种方法,包括:
map[1][1] = 1;
所做的就是给我这个:
ReferenceError: Error #1056: Cannot create property 1 on Number.
我也试过:
map[[1,1]] = 1;
没有发生我能说的事情
到目前为止,我尝试过的唯一没有错误的方法是:
map[1,1] = 1;
这里的问题是这会选择整行。 任何帮助将不胜感激..谢谢!
这不是创建二维数组的正确方法:
private var map:Array = [[25,25]];
这个数组包含一个包含两个元素的数组。您不能像这样寻址到第二个元素:
map[1][1] = 1;
因为map
的第二个元素(数组)不存在
您可以这样创建二维数组:
var map:Array = [];
for (var i:int = 0; i < rows; i++)
{
map[i] = [];// this line adds new row to the 2D array
// To fill the array by zeros add next loop
for (var j:int = 0; j < cols; j++)
{
map[i][j] = 0;
}
}
首先,我认为要得到您问题中提到的错误,您的数组应该如下所示:
var map:Array = [
[25, 25], // map[0] = [25, 25] ( array of two elements )
35 // map[1] = 35 ( just a simple number )
];
所以,如果你写:
trace(typeof map[1]); // gives : number
你会得到:number
,这就是你不能正确的原因:map[1][1] = value;
你得到 #1056
错误是正常的。
在这里,我不知道你的意思是将值 1
分配给 map[0]
的第二个 25
还是你真的想添加或编辑 map[1][1]
,在第一种情况下,您可以简单地写:
map[0][1] = 1; // gives : map[0] = [25, 1]
在第二种情况下,你可以这样做:
map[1] = [any_other_value, 1]; // gives : map[1] = [any_other_value, 1]
最后一句话,忘记你有一个错误并假设你的 map
数组只是:
var map:Array = [
[25, 25]
];
这里不能也写map[1][1] = value;
,为什么?让我们使用相同的方法:
trace(map[1]); // gives : undefined
所以肯定不能将 属性 添加到 undefined
,这就是为什么要写:
map[1][1] = value;
您将收到 #1010
错误:"undefined has no properties. ".
当然这里要先创建map[1]
:
map[1] = []; // or directly map[1] = [any_other_value, value]
然后:
map[1][1] = value;
希望能帮到你。