json数组怎么局部更新?

小程序 文章 2021-12-09 11:00 10 0 全屏看文

json数组怎么局部更新?How to update the json array locally?

json数组怎么局部更新?
 let sdata={      'a':{        'has':true,        'content':[]      },      'b':{         'has':true,        'content':[]      },let chang=sdata['a'].contentchang.push(1)index是个变量,要添加的key是不确定a还是blet schang='sdata['+index+'].content'        that.setData({          schang:chang,        })            that.setData({          'schang':chang,        })都不起作用,谢谢

 let sdata={      'a':{        'has':true,        'content':[]      },      'b':{         'has':true,        'content':[]      },let chang=sdata['a'].contentchang.push(1)index是个变量,要添加的key是不确定a还是blet schang='sdata['+index+'].content'        that.setData({          schang:chang,        }) that.setData({          'schang':chang,        })都不起作用,谢谢

回答:

brave:

微喵网络:
let content=that.data.sdata.a.contentcontent.push(1)that.setData({  "sdata['a'].content": content})
子游:我上面少写一句,index是个变量,不确定更新的是哪一个key,你这种我写过了 不生效
微喵网络:字符串拼接啊
子游:
微喵网络:稍等,我看看我项目里代码是怎么写的
子游:
微喵网络:这样
子游:你这种只能用于数组,用在json里使用会报Only digits (0-9) can be put inside [] in the path string
微喵网络:这样呢?
子游:没有效果
微喵网络:那我没办法了,等大佬吧
子游:哎,你就是大佬呀
微喵网络:我不是,惭愧
子游:上面那个大哥的方法起效果了,不支持直接拼,需要用es6的这种${index},太坑了
微喵网络:那个才是真大佬
中式小面包:
this.setData({ sdata: JSON.parse(JSON.stringify(this.sdata)),})
子游:你这个是整体更新了,我需要的是局部更新,因为每个key的contnent数组里数据会比较多,所以需要局部更新

-EOF-