私は非常に単純なifステートメントツリーで作業していて、コードを可能な限りDRYで記述したいと考えています。ユースケースで可能な限り、DRYestコードを実装しており、オブジェクトキーへのポインターを書き込もうとしました(そうではないようです)。セッター関数なしで可能)そして中括弧を単純化しますが、質問の目的のために、何をする必要があるかを明確にするためにそれらを残しました。
このifツリーのより単純なバージョンはありますか?
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 }
}
}
さまざまなコメントの統合:
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
既存のオブジェクトを変更してもかまわない場合は、2秒でそれを行うことができます。
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;
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加