从字符串动态修改json属性

问题描述

我有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 (将#修改为@)