第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

清理這些 if 語句的最佳方法是什么?

清理這些 if 語句的最佳方法是什么?

拉風的咖菲貓 2021-09-30 15:14:17
我正在使用一個非常簡單的if 語句樹,并希望盡可能地編寫 DRY 代碼,我相信我正在為我的用例實現(xiàn) DRYest 代碼,并嘗試寫入指向?qū)ο箧I的指針(似乎不是可能沒有 setter 函數(shù))并簡化大括號,但出于這個問題的目的,我把它們留在了里面,以明確需要做什么。如果樹有更簡單的版本嗎?let query = {};if (min_budget || max_budget) {    if(min_budget && max_budget) {        query['budget.middleBound'] = { $gte: min_budget, $lte: max_budget }     } else if (min_budget && !max_budget) {        query['budget.middleBound'] = { $gte: min_budget }    } else if (max_budget && !min_budget) {        query['budget.middleBound'] = { $lte: max_budget }    }}
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

綜合各種意見:


let query = {};

if (min_budget && max_budget) {

    query['budget.middleBound'] = { $gte: min_budget, $lte: max_budget }; 

} else if (min_budget) { // ***

    query['budget.middleBound'] = { $gte: min_budget };

} else if (max_budget) { // ***

    query['budget.middleBound'] = { $lte: max_budget };

}

除非有更多特定于域的信息,否則這可能是簡單、直接的版本。


if如果您不介意修改現(xiàn)有對象,您可以只用兩個s 來完成:


let query = {};

if (min_budget || max_budget) {

    const mb = query['budget.middleBound'] = {};

    if (min_budget) {

        mb.$gte = min_budget;

    }

    if (max_budget) {

        mb.$lte = max_budget;

    }

}


查看完整回答
反對 回復(fù) 2021-09-30
?
慕勒3428872

TA貢獻1848條經(jīng)驗 獲得超6個贊

如果您只關(guān)心語法和短代碼,則可以使用短路求值。


    let query = {};

    let bound = (min_budget || max_budget) && (query['budget.middleBound'] = {});

    min_budget && (bound.$gte = min_budget);

    max_budget && (bound.$lte = max_budget);

代碼的想法是,如果我們需要添加最小或最大條件,我們首先創(chuàng)建一個新的Objectat query['budget.middleBound']。我們還保存了一個引用bound并進一步使用它(因此我們不必再次訪問budget.middleBoundon的屬性query,它的名稱很長)。Object如果需要,我們?nèi)匀恢粍?chuàng)建一個額外的。


請注意,Objects在創(chuàng)建屬性后添加屬性比Object使用已存在的所有鍵創(chuàng)建屬性要慢。


通常不建議在生產(chǎn)中編寫這樣的代碼,因為理解代碼在執(zhí)行時的作用需要更多時間。


查看完整回答
反對 回復(fù) 2021-09-30
  • 2 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號