Javascript lodash如何在多个路径中设置值

Javascript lodash如何在多个路径中设置值,javascript,lodash,Javascript,Lodash,我正在查看lodash中的\u set和\u setWith函数,但我需要能够使用一个catch all参数 object = {"root": {"a": null, "b": null, "c": null}}}; path = ["root", "*"]; _.set(object, path, 1); console.log(object) >>> {"root": {"a": 1, "b": 1, "c": 1}}} 我只用一个*显示了它,但如果路径有多个,我也需

我正在查看lodash中的
\u set
\u setWith
函数,但我需要能够使用一个catch all参数

object = {"root": {"a": null, "b": null, "c": null}}};
path = ["root", "*"];
_.set(object, path, 1);

console.log(object)
>>> {"root": {"a": 1, "b": 1, "c": 1}}}

我只用一个
*
显示了它,但如果路径有多个,我也需要它工作,例如
[“root”、“*”、“*”]

您可以使用函数检查是否给定了占位符并分叉递归或更新所有键

函数setValue(对象,[key,…rest],值){
如果(键=='*'){
Object.keys(对象).forEach(rest.length
?k=>setValue(对象[k],静止,值)
:k=>对象[k]=值
);
返回;
}
if(剩余长度){
设置值(对象[键]、静止、值);
返回;
}
对象[键]=值;
}
var object={root:{a:null,b:null,c:null},
路径=[“根”,“*”];
设置值(对象,路径,1);

console.log(对象)
您不能使用
\uuu.set
进行实际的递归设置

您可以使用
合并并编写自己的自定义程序


链接到。

我想这正是我想要的!非常感谢!:-)