2014-08-27 46 views
1

我試圖用其他答案解決我的錯誤,但只是失敗。我有這個簡單的例子,我認爲它是二維數組,但它不斷返回我未定義的錯誤。JavaScript二維數組未定義

var city = 'London', 
    country = 'England'; 

var locate = []; 
locate['London']['England'] = ['Jhon','Mike']; 

for (i = 0; i < locate[city][country].length; i++) { 
    console.log(locate[city][country][i]); 
} 

jsbin http://jsbin.com/pixeluhojawa/1/

那我在這個例子中做錯了,我會感激你的幫助。

+0

'找到[ '倫敦']'顯然是不確定的。 – 2014-08-27 08:28:49

+0

javascript中的2x2矩陣/數組是Array中的數組。你能以矩陣的形式提供你想要放入陣列的東西嗎?你是否嘗試{[倫敦,英格蘭],[約翰,邁克]}? – sbjumani 2014-08-27 08:31:16

回答

2

之前,你可以分配一個值locate['London']['England'],你必須確保locate['London']是一個對象:我如何使用對象文本({}),而不是一個數組文本

var locate = {}; 
locate['London'] = {}; 
locate['London']['England'] = ['Jhon','Mike']; 

通知([] )。數組不支持這樣的字符串鍵。你需要改用對象。

你也可以把它聲明這樣的:

var locate = { 
    London:{ 
     England:["Jhon","Mike"] 
    } 
} 
+3

也應該是'locate = {}'。這不是一個數組;) – 2014-08-27 08:29:21

+1

@Derek朕會功夫:我錯過了很明顯,編輯了答案:P – Cerbrus 2014-08-27 08:30:19

+0

非常感謝。這解決了這個問題。現在我明白了這一點。 – devjs11 2014-08-27 08:37:49