我有一個通過AJAX通過AJAX從服務器創建的對象。該對象有幾個子對象的數組,例如:需要時動態創建子對象和數組
obj.subObj1[0].value="abc";
obj.subObj1[1].value="abc";
obj.subObj2[0].value="abc";
現在我想在這種對象設置一些值,但我不知道他們是否已經存在。
obj.subObj1[0].value="new Value"; // No Problem
obj.subObj2[1].value="new Value2"; // Problem because obj.subObj2[1] is no Object.
我需要做的第一obj.subObj2[1]={}
。
因爲我經常遇到這個問題,所以我正在尋找使這個自動化的方法。一種方法或類,它會自動創建所需的對象(如果我使用整數,則爲數組)。
它應該能夠處理這種子對象的無限深度。像這樣:
var obj = TheObject();
obj.sub1.sub2[10].sub3[1].sub4='value';
現在自動創建所有需要的子對象和數組。
+1 nice answer :) – Marwan 2011-12-31 11:22:08
這適用於極限示例。我正在尋找一個通用的解決方案,用於對象中的無限深度。我也想做 obj.some [0] .other [1] .another.value 等等。 – 2011-12-31 12:56:16
這實際上並不是你問的,但你可以稍微改變你的問題以反映這一點。爲了做這樣的事情,我會想象你需要一個字符串解析函數來自動創建適當的對象和數組變量。結果調用看起來像這樣:parentObject = createBlueSmoke(「obj.some [0]。其他[1] .another.value「,」某個值「); – abelito 2011-12-31 13:14:56