Javascript 是否可以使用此语法更改嵌套对象属性

Javascript 是否可以使用此语法更改嵌套对象属性,javascript,Javascript,假设您拥有此对象: myObj = { foo: { bar : 123, baz: 456 } }; 要编辑条形图的值,可以执行以下操作: myObj['foo']['bar'] = 789 但是,如果您在某个地方有一个方法可以像这样更改特定对象属性,该怎么办 myObj[key] = value 如果您需要使用它,并且希望在myObj对象中编辑bar,是否可以使用该代码 我试过: myObj["foo"."bar"] = 789; myObj["foo"["bar"]] = 789;

假设您拥有此对象:

myObj = { foo: { bar : 123, baz: 456 } };
要编辑条形图的值,可以执行以下操作:

myObj['foo']['bar'] = 789
但是,如果您在某个地方有一个方法可以像这样更改特定对象属性,该怎么办

myObj[key] = value
如果您需要使用它,并且希望在
myObj
对象中编辑
bar
,是否可以使用该代码

我试过:

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

但它不起作用。有可能吗?

纯JavaScript不允许您使用简单的字符串访问嵌套属性

替代品可以是lodash:

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

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

如果
\uuuu
能做到这一点,还有一种“纯Javascript”的方法可以做到(尽管使用了更多的代码).@deceze我想我们这里讨论的是最简单的解决方案。包括一个附加的库不一定是最简单的解决方案…谢谢Hsz,但我确实希望有一种纯Javascript的方法,不幸的是,lodash不是项目中的选项。