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将问题标记为重复的一种方式