Javascript"无法设置属性"的3d数组

时间:2013-11-15 21:27:29

标签: javascript arrays

我试图在3d javascript数组中设置值...

var a = [];
var b = [];
var c = [];
var array = [a,b,c];
array[0][0][0] = 'value';

此代码返回错误:“无法设置未定义的属性'0'但是2d数组正常工作:

var a = [];
var b = [];
var array = [a,b];
array[0][0] = 'value';

2 个答案:

答案 0 :(得分:2)

这不是3D数组,即2D数组,字面翻译为:

[[],[],[]]

答案 1 :(得分:2)

在第一个示例中,您没有三维数组。 你拥有的是[[],[],[]] - 一个包含3个并行数组的数组。 这就是为什么你无法访问array[0][0][0],因为你获得的最深层是2级。这就是为什么第二个例子中的代码有效的原因。

我认为你对数组感到困惑。也许你应该再读一下编程,数组和整个想法?


如果你想拥有一个包含3个leves的数组,这是一个很好的例子:一个数组中的数组,它在一个数组本身

var a3l_a = [[[]]];
// equals:
var a3l_b = new Array(new Array(new Array()));