Javascript 如果路径是可变的,如何使用可选链接?
好的,现在我可以用ES11替换:Javascript 如果路径是可变的,如何使用可选链接?,javascript,lodash,Javascript,Lodash,好的,现在我可以用ES11替换: const name = _.get(response, 'data.options.name'); 与: 但是,如果'data.options.name'作为变量传递,我如何使用它呢 例如,在以下情况下,如何轻松(一行)替换lodash async someFunc(doc, path) { let prop = _.get(doc, path); if (prop) { await doSomethingUseful(pro
const name = _.get(response, 'data.options.name');
与:
但是,如果'data.options.name'
作为变量传递,我如何使用它呢
例如,在以下情况下,如何轻松(一行)替换lodash
async someFunc(doc, path) {
let prop = _.get(doc, path);
if (prop) {
await doSomethingUseful(prop);
}
}
您可以在
处拆分路径,并减少部分。以doc
object作为累加器开始,并在每个迭代中返回嵌套对象(可选链接)
let prop = path.split(".").reduce((acc, part) => acc?.[part], doc)
const get=(doc,path)=>path.split(“.”)。reduce((acc,part)=>acc?[part],doc)
console.log(
获取({data:{},'data.options.name'),
获取({data:{options:{},'data.options.name'),
获取({data:{options:{name:'abc'}}},'data.options.name')
)
let prop = path.split(".").reduce((acc, part) => acc?.[part], doc)