2012-05-12 32 views
-3

這條線有什麼問題。 它在控制檯中顯示uncaught syntax error帶有值和鍵的數組中的語法錯誤

var aqar= new Array(1:'1_2',2:'5_1',3:'3_3'); 
+5

請仔細閱讀一個JavaScript教程來學習基本語法:https://developer.mozilla.org/en/JavaScript/Guide。你爲什麼認爲這條線首先是正確的? –

+0

我來自PHP背景。我認爲可以在javaScript數組中使用自定義鍵。 –

+0

不在數組中。數組只是一個「列表」/枚舉對象,它不是一個鍵值存儲。這是一個對象或地圖。 – Igor

回答

0

如果你真的想要創建一個陣列,通常JavaScript數組是基於0,不1爲基礎的,這就是現在怎麼樣你初始化它們。

這裏是一個從零開始的數組

var aqar = ['1_2', '5_1', '3_3']; 

或者,你可能更願意使用非數組對象:

var aqar = { 
    1: '1_2', 
    2: '5_1', 
    3: '3_3' 
}; 

...但你不會有所有偉大的Array東東。

如果你真的想,你可以創建一個JavaScript陣列上,在0位置像這樣沒有元素:

var aqar = []; 
aqar[1] = '1_2'; 
aqar[2] = '5_1'; 
aqar[3] = '3_3'; 

這(在它的有孔陣列)創建稀疏陣列。它沒有元素0。 (而不是有一個元素0與值null,這是另一個答案在這裏做。)但除非你有一個很好的理由,我不會。

0

這是構建數組的奇怪方法。嘗試:

var aqar = ['1_2','5_1','3_3']; 
aquar[0]; //1_2 
aquar[1]; //5_1 
aquar[2]; //3_3 

,或者如果你打算使用對象:

var aquar = { 
    "1": "1_2", 
    "2": "5_1", 
    "3": "3_3" 
} 
1

你混合數組和對象在JavaScript中。

陣列沒有按鍵,當你將它們定義:

var aqar = new Array('1_2', '5_1', '3_3'); // These lines 
              // do the same 
var aqar = ['1_2', '5_1', '3_3'];   // things 

否則,您需要定義一個對象:

var aqar = { 1 : '1_2', 2 : '5_1', 3 : '3_3' }; 
+0

'var aqar = ['1_2','5_1','3_3'];'比'new Array'形式好得多。否則,+1 –

+0

@ T.J.Crowder的確,謝謝!更新。 – VisioN

0

這不是有效的數組語法,且從未有過。

如果您想讓您的陣列以一個爲基礎,請使用null作爲第一個元素。另外,不要使用new Array()當你不需要:

var aqar = [null,'1_2','5_1','3_3]; 
0

你用散列混合數組。 陣列:

var a = ['1_2','5_1','3_3']; //a[0] = '1_2' 

哈希:

var a = {1:'1_2',2:'5_1',3:'3_3'}; //a[1] = '1_2'