簡體   English   中英

將嵌套對象分配給對象JS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM