2016-12-02 93 views
-1

我遇到問題。Javascript數組未識別

我有以下的Javascript數組創建:

<script type="text/javascript"> 
     ArrayName['FirstValue']['SecondValue'] = { 
     name = 'checbox_id' 
     checked = true } 
    </script> 

但是當我打電話在全局陣列中這裏的函數是一個示例電話:

ArrayName[value1][value2] = true; 

我得到一個消息,說明ArrayName是未定義的。

什麼會創建一個類似於上面的數組的正確方法?

謝謝 凱文·拉夫

+4

那麼,其中*是* ArrayName定義? – Gavin

+0

讓我們從「爲什麼你想要一個全局數組?」開始吧。 – Makoto

+0

原因我想再次使用它... –

回答

2

您正試圖在一個名爲ArrayName一個數組,不被任何聲明設置元素。

<script type="text/javascript"> 
    // You are attempting to access an array but it hasn't been declared: 
    ArrayName['FirstValue']['SecondValue'] = { 
    name = 'checbox_id' 
    checked = true } 
</script> 

語法表明,這是一個包含嵌套數組的數組,像這樣:

var ArrayName = [[1,2,3], [4,5,6], [7,8,9]]; 

所以,如果你想獲得的8號,你需要訪問第三方陣列元素並獲得在數組中的第二個值存儲在那裏:

// Remember, array indexes start counting from zero 
ArrayName[2][1]; // Get the third element's, second item 

或者(如果我們把你的例子從字面上看,你在哪裏尋找文字字符串不是正整數),ArrayName不會是一個數組,它將是一個對象,您正嘗試訪問屬性FirstValue,此屬性然後將另一個對象存儲爲其值,並且該對象具有名爲SecondValue的屬性。該結構是這樣的:

var ArrayName = { 
    'FirstValue' : { 'SecondValue' : something; } 
} 

但是,不知道你要完成,我們不可能幫你寫數組或對象。

接下來,我們要談的是您要分配給數組對象:

{ 
     name = 'checbox_id' 
     checked = true 
} 

此語法不正確。它應該是:

{ 
     name : 'checbox_id', 
     checked : true 
} 
+0

'ArrayName = ['FirstValue'] ['SecondValue'] = {};'不會做你認爲它的作用。 –

+4

由於代碼實際上是:'ArrayName ['FirstValue'] ['SecondValue'] = { name ='checbox_id'checked = true}'我認爲它的確如此。 –