Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用用户指定的路径更改嵌套对象值 问题_Javascript - Fatal编程技术网

Javascript 使用用户指定的路径更改嵌套对象值 问题

Javascript 使用用户指定的路径更改嵌套对象值 问题,javascript,Javascript,我想构建一个函数,该函数接受嵌套对象值的路径,并将该值设置为“新值” const obj={ 傅:{ 酒吧:“巴兹” } } //api应该是 changeObjKey(o=>o.foo.bar) //或 changeObjKey('foo.bar') /* *预期: obj={ 傅:{ 栏:“新值” } } */ 我所尝试的: 类似这样的东西(显然不起作用) 我不想使用lodash之类的东西,我正在寻找这个问题的最简单的解决方案。我也不想使用eval,api应该同时支持foo.bar和foo

我想构建一个函数,该函数接受嵌套对象值的路径,并将该值设置为“新值”

const obj={
傅:{
酒吧:“巴兹”
}
}
//api应该是
changeObjKey(o=>o.foo.bar)
//或
changeObjKey('foo.bar')
/*
*预期:
obj={
傅:{
栏:“新值”
}
}
*/
我所尝试的: 类似这样的东西(显然不起作用)

我不想使用lodash之类的东西,我正在寻找这个问题的最简单的解决方案。我也不想使用eval,api应该同时支持foo.bar和foo[bar](如果基于字符串)


api的用法会是怎样的呢?
changeObjKey(o=>o.foo.bar)
?它既不指定要传入的对象,也不指定要更改的值
o.foo.bar
to@NickParsons此外,如果解析为基元类型,它如何工作?@NickParsons这两个都是固定的。
function changeObjKey(cb){
  cb(obj) = 'new value'
}