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

时间:2017-07-19 10:21:27

标签: javascript

说你有这个对象:

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

要编辑bar的值,您可以执行以下操作:

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

但是,如果你有一个方法可以改变特定的对象属性,如下所示:

myObj[key] = value

如果您需要使用它,并且想要编辑bar对象中的myObj,是否可以使用该代码?

我试过了:

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

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

1 个答案:

答案 0 :(得分:0)

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

替代品可以是lodash:

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

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