2017-07-19 34 views
0

說你有這個對象:是否有可能與此語法更改嵌套對象的屬性

myObj = { foo: { bar : 123, baz: 456 } }; 

編輯欄的值,你可以這樣做:

myObj['foo']['bar'] = 789 

但是,如果你有什麼改變這樣的特定對象屬性的方法某處:

myObj[key] = value 

如果需要使用,你想EDI t barmyObj對象,是否有可能與該代碼?

我想:

myObj["foo"."bar"] = 789; 
myObj["foo"["bar"]] = 789; 

但它不工作。有沒有可能做到?

回答

0

Pure JavaScript不允許您使用簡單字符串訪問嵌套屬性。

的備選可以即lodash:

_.get(myObj, 'foo.bar'); // 123 

_.set(myObj, 'foo.bar', 789); 
+0

如果'_'能做到這一點,也有一個「純JavaScript」的方式做到這一點(雖然使用更多的代碼)... – deceze

+0

@deceze我assue我們」重新談論這裏最簡單的解決方案。 – hsz

+0

包括一個額外的庫不一定是最簡單的解決方案... – deceze

相關問題