Javascript 按属性编辑深度对象值

Javascript 按属性编辑深度对象值,javascript,object,Javascript,Object,我有一个目标 let a = {b : {c : "d"}} 我有一个必须用新值改变的属性 let prop = "b.c"; let newValue = "e"; 因此,在我的对象中,“c”必须用新值编辑 我试过了 a[prop] = newValue; // but it create "b.c" property let fields = prop.split('.'); a[fields] = newValue; // but it create "b,c" property

我有一个目标

let a = {b : {c : "d"}}
我有一个必须用新值改变的属性

let prop = "b.c";
let newValue = "e";
因此,在我的对象中,“c”必须用新值编辑

我试过了

a[prop] = newValue; // but it create "b.c" property

let fields = prop.split('.');
a[fields] = newValue; // but it create "b,c" property

// all i want is a dynamic way to do
a[fields[0]][fields[1]] = newValue;
可能吗

感谢使用
reduce()

a={b:{c:d}
让prop=“b.c”
让newValue=“e”
属性拆分('.')。减少((a,o)=>
对象(a[o])==a[o]?a[o]:a[o]=新值
,a)

console.log(a)
{b:c:{“d”}
语法无效。您的对象是
let a={b:{c:d”}
?我的错,我编辑了
let newValue:“e”也是无效语法。顺便说一句,您最好使用以下内容。另一种方法是重新实现此功能。这并不难,但这取决于您希望执行多少错误处理以及希望支持多少语法。洛达斯已经有了这两个。谢谢,这正是我要找的东西。mor将问题标记为重复的一种方式