簡體   English   中英

如果路徑是可變的,如何使用可選鏈接?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM