typescript 通过字符串路径访问和修改JSON对象

czfnxgou  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(146)

我的问题很简单,但在网上似乎没有人回答,我不能让我的头周围。
我基本上想写一个setter函数,它接受一个JSON对象并将一个键设置为一个值,不管路径是否已经存在。
变式1:

setPath(payload: Object, path: string, value: any) {
 // ???
}

obj: Object = {}
newObj: Object = setPath(obj, "foo.bar[0], "wut");

变式2:

setPath(payload: Object, path: string, value: any){
 // ???
}
obj: Object {
 foo: {
  bar: []
 }
}
newObj: Object = setPath(obj, "foo.bar[0]", "wut");

这两种情况都会导致JSON对象看起来像这样:

{
 foo: {
  bar: [
   "wut" 
  ]
 }
}

谢谢你的帮助

mnemlml8

mnemlml81#

感谢@cmgchess
youmightnotneed.com/lodash#set
在这个链接中,您可以找到一个简单的JavaScript解决方案,或者像我一样,使用lodash提供的方法

相关问题