2013-11-15 43 views
1

我试图在3D的JavaScript数组来设置值...的Javascript“无法设置属性”

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

此代码返回错误:“无法设置属性‘0’的未定义”,但二维数组工作常:

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

无论那些是一个三维数组的数组。他们都是二维数组。 – Ennui

+0

难道你没有看到'[a,b,c]'只是一个包含三个元素的数组吗?想象一下它会是'[1,2,3]'。 –

回答

2

这不是一个三维阵列,那是一个二维数组,从字面上翻译为:在你的第一封

[[],[],[]] 
2

xample你没有一个三维数组。 你有什么是[[],[],[]] - 一个有3个平行阵列的数组。 这就是为什么你不能访问array[0][0][0],因为你得到的最深处是2级。这就是为什么你的代码在第二个例子中起作用。

我觉得你对数组感到困惑。也许你应该再次阅读有关编程,数组和整个想法?


如果你想有3个leves数组,这是一个很好的例子:在一个阵列是在阵列本身

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