繁体   English   中英

按属性编辑深层对象值

[英]Edit deep object value by 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()

 let a = {b : {c : "d"}} let prop = "bc" let newValue = "e" prop.split('.').reduce((a, o) => Object(a[o]) === a[o] ? a[o] : a[o] = newValue , a) console.log(a)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM