2017-06-27 50 views
0

我有下面的代碼使用了一些在JavaScript對象的數據集引用了許多....在JavaScript多維對象

spacenum = spacedetails[1]; 
//Create object for space number 
if(spacenum in spaceobj['P1'] == false){ 
    spaceobj['P1'][spacenum] = {}; // must initialize the sub-object, otherwise will get 'undefined' errors 
} 
spaceobj['P1'][spacenum]['Vacant'] = spacedetails[2]; 
spaceobj['P1'][spacenum]['Name'] = spacedetails[3]; 
spaceobj['P1'][spacenum]['Number'] = spacedetails[4]; 
spaceobj['P1'][spacenum]['Apartment'] = spacedetails[5]; 

這一代碼進入繞了循環,使「spacenum」開始於1並延續至100年代後期。

我試圖訪問像這樣的數據:

console.log(spaceobj.P1.11.Vacant); 

然而,「11」扔了錯誤。我已經嘗試過括號和引號,但沒有任何運氣。

如何使用數字訪問我想要的數據?

謝謝,

+0

你應該能夠像這樣'的console.log(spaceobj [「P1」] [11] .Vacant);'如果你不能這樣,從控制檯 –

回答

1

在JavaScript'11'不是一個有效的變量名稱。然而,由於其動態特性,你可以使用:

console.log(spaceobj.P1["11"].Vacant);

或者,也可以使用:

console.log(spaceobj["P1"]["11"].Vacant);

+0

粘貼錯誤日誌,謝謝你許多。我會盡快接受! –

+0

'P1'既不是變量名稱。這是一個關鍵。 –

+0

是的。但答案在這種情況下仍然有效。編輯我的回答以反映您的建議。謝謝 :) –

0

其實下面的代碼行是不明確的

spaceobj ['P1']

確保你的spaceobj ['P1'] = false;擁有價值

spacenum = 11; 
spaceobj = []; 
spaceobj['P1'] = false; 
spaceobj['P1'][spacenum]= 'A'; 
spaceobj['P1'][spacenum]= 'B';