如何访问二维数组 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;

希望能帮到你。