问题描述
我有JSON对象
var a = { a: { b: 10,c: 10 } }
我想要一个可以动态更改JSON对象的方法。假设当我向方法提供object,string和一个值时,它应该返回更新的JSON对象
change(a,'a.b',30)
更改方法如下:-
function change(obj,str,val) {
const newObject = str.split('.').reverse()
.reduce((a,p,i) => {
if(i===0) a[p] = val
else { let b = {}; b[p] = a; a = b}
return a;
},{})
return { ...obj,...newObject }
}
它应该返回
{ a: { b : 30,c: 10 } }
不修改其他json字段,但当前正在返回
{ a: { b : 30 } }
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)