2012-08-13 25 views
2

說我有這個對象:設定值不存在的對象

test = { 
    testObj: { 
     "1": { 
      "key": "value" 
     } 
    } 
} 

,我想添加值testObj像這樣:

test.testObj["2"].key = "my value"; 

我得到錯誤TypeError: Cannot set property 'key' of undefined

現在我明白key還不存在,但2也不存在,但我可以設置它的價值:

test.testObj["2"] = "something";

那麼我該怎麼辦呢?

編輯 哇我覺得自己並不知道自己的愚蠢......反正謝謝你們。

+0

檢查下面的鏈接。 http://stackoverflow.com/questions/1168807/how-can-i-add-a-key-value-pair-to-a-javascript-object-literal – Dips 2012-08-13 20:18:45

+0

@Linas不覺得愚蠢。但_do_標記答案。 ;) – canon 2012-08-13 20:54:48

回答

3

JavaScript不知道test.testObj["2"]應該在這種情況下什麼,所以它最終測試它作爲現有屬性:

test.testObj["2"].key = "my value"; 

分配可以僅適用於結構的左邊的最後一部分。

但你可以告訴它,它是第一個創建的對象是什麼:

test.testObj["2"]={}; 
test.testObj["2"].key = "my value"; 

或單步:

test.testObj["2"] = { key: "my value"};