我有MyObject
稱爲對象和被叫createEntry()
方法,其目的是爲MyObject
以及用於屬性的子屬性或者創建一個新的屬性如果它已經存在,就完全跳過它。創建對象的子對象到第n級
我的代碼:
var MyObject = {
createEntry: function (val1, val2, val3, val4) {
this[val1] = this[val1] || {};
this[val1][val2] = this[val1][val2] || {};
this[val1][val2][val3] = val4;
}
};
MyObject.createEntry("val1", "val2", "val3", "val4");
如上功能中顯示,我試圖創建一個新的子對象的方法的每個參數除了最後兩個,其中createEntry()
val3
是property
或method
和val4
是其值。
我的方法在當前狀態下,只能達到3級,隨後的方法需要更長和更長的代碼。我假設以上可以通過循環來實現,但我還沒有弄清楚。
問:我如何可以創建基於在一個樹的方式,看起來像下面對上面的函數傳遞的參數數目無限的子對象:
var MyObject = {
val1: {
val2 {
val3: val4
}
}
}
嘿@TheProHands,謝謝你的回答。在這個例子中,名字'Object','val1','val2'等被用來創建一個最小的代碼片段,所以不要擔心我的代碼中的衝突。現在來找你的答案,糾正我,如果我錯了,但我不認爲這是要走的路。每個子對象將有一個指定的名稱,而不是一些抽象的'val123'等,也看不到最後兩個參數是這樣的格式:**'val3':val4 **。不管怎麼說,還是要謝謝你。 –
@AngelPolitis啊!你需要在參數中指定。我會更新它 – Hydro
我糾正了代碼中的錯字。如果您更喜歡正常的代碼風格,我可以更新它以使其更清晰。是的,我測試了它。你有沒有再檢查一次? – Hydro