[英]Assign nested object to object JS
以前可能已經問過這個問題,但我沒有確切地看到這個問題:
有沒有一種方法可以在javascript中聲明一個對象,這樣我就可以直接在多個嵌套級別中分配值(而在此過程中無需聲明每個級別)?
例:
var obj = {};
obj["key1"]["key2"]["key3"] = "value";
obj["key1"]["key4"]["key5"] = "value2;
上面的方法對我來說不起作用,但是由於我是動態創建對象的,因此,我必須首先檢查是否存在,因此沿途為每個鍵創建每個級別會很昂貴。
即:
if (!obj["key1"]) obj["key1"] = {};
elseif (!obj["key1"]["key2"]) !obj["key1"]["key2"] = {};
... etc
我希望這是有道理的。
這樣做是沒有意義的。
我確信您在非常特殊的情況下需要它,因此我建議您檢查一下目的並改用輔助函數。
例如, setProperty(targetObj, path, value)
,其中path
是像['key1', 'key2']
類的普通列表,因此您可以在此處檢查是否存在。
另外,如果可以的話,您可以組合鍵集。 像obj[key1 + '_' + key2]
。 在這種情況下,編寫輔助方法getter和setter也很容易。
PS再次,您真的不想走那條路。 如果必須通過一組鍵訪問值,則可能是一個組合鍵。 不要復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.