Arrays 如何访问2d数组中的单个变量Actionscript 3
我正在尝试访问我的2d瓷砖阵列中的单个瓷砖 我是这样创建阵列的:Arrays 如何访问2d数组中的单个变量Actionscript 3,arrays,actionscript-3,Arrays,Actionscript 3,我正在尝试访问我的2d瓷砖阵列中的单个瓷砖 我是这样创建阵列的: 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] =
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映射:数组=[];
对于(变量i:int=0;i
首先,我认为要获得问题中提到的错误,您的数组应该如下所示:
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
map[1][1] = value;
您将得到: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
因此,请确保不能将属性添加到未定义的中,这就是为什么在编写时:
trace(typeof map[1]); // gives : number
map[1][1] = value;
您将得到一个#1010
错误:“undefined没有属性。”
当然在这里,我们应该首先创建map[1]
:
map[1] = []; // or directly map[1] = [any_other_value, value]
然后:
map[1][1] = value;
希望这能有所帮助。除此之外,您在此处显示的代码永远不会出现此错误。。。你知道数组索引是从零开始的吗?嗯,我得到了那个错误…我不太确定你的第二句话,如果你的意思是它们从0开始,那么我知道。。。这些只是我试图得到我想要的工作的例子