我試圖在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';
我試圖在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';
這不是一個三維陣列,那是一個二維數組,從字面上翻譯爲:在你的第一封
[[],[],[]]
xample你沒有一個三維數組。 你有什麼是[[],[],[]]
- 一個有3個平行陣列的數組。 這就是爲什麼你不能訪問array[0][0][0]
,因爲你得到的最深處是2級。這就是爲什麼你的代碼在第二個例子中起作用。
我覺得你對數組感到困惑。也許你應該再次閱讀有關編程,數組和整個想法?
如果你想有3個leves數組,這是一個很好的例子:在一個陣列是在陣列本身
var a3l_a = [[[]]];
// equals:
var a3l_b = new Array(new Array(new Array()));
無論那些是一個三維數組的數組。他們都是二維數組。 – Ennui
難道你沒有看到'[a,b,c]'只是一個包含三個元素的數組嗎?想象一下它會是'[1,2,3]'。 –