[英]How to use Optional Chaining if path is variable?
好的,所以我現在可以用 ES11 替換:
const name = _.get(response, 'data.options.name');
和:
const name = response?.data?.options?.name;
但是,如果'data.options.name'
作為變量傳遞,我該如何使用呢?
例如,在以下情況下,如何輕松(單行)替換 lodash?
async someFunc(doc, path) {
let prop = _.get(doc, path);
if (prop) {
await doSomethingUseful(prop);
}
}
您可以在.
並reduce
零件。 從doc
object 作為累加器開始,並在每次迭代中返回嵌套的 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( get({ data: { } }, 'data.options.name'), get({ data: { options: {} } }, 'data.options.name'), get({ data: { options: { name: 'abc' } } }, 'data.options.name') )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.