これらのifステートメントをクリーンアップするための最良の方法は何でしょうか?

Bdyce

私は非常に単純な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 }
    }
}
TJクラウダー

さまざまなコメントの統合:

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]

編集
0

コメントを追加

0

関連記事

分類Dev

PythonのWebスクレイピングの結果でAndroidアプリを作成するためのよく知られたプラットフォームはありますか?そして、そうするための最良の方法は何でしょうか?

分類Dev

Webアプリからボットフレームワークにコンテキスト情報を渡すための最良の方法は何ですか

分類Dev

このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

分類Dev

このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

分類Dev

スクリプト内からPythonコンソール出力を電子メールとして送信するための最良の方法は何ですか?

分類Dev

これらの一連のifステートメントをリファクタリングする最良の方法は何ですか?

分類Dev

オンラインストアバスケットをプログラミングするための最良の選択は何でしょうか

分類Dev

オンラインストアバスケットをプログラミングするための最良の選択は何でしょうか

分類Dev

ユーザーが文字列のリストを表示し、tkinterウィンドウでそれらの文字列を編集できるようにするための最良の方法は何でしょうか?

分類Dev

インストール/アップグレードスクリプトを検証するための最良の方法は何ですか?

分類Dev

反応アプリでドキュメントのスクロール率を取得するための最良の方法は何ですか?

分類Dev

ChainBuilderを使用してガトリングユーザーフローを定義するための最良の方法は何でしょうか?

分類Dev

このスコアテーブルで以前のランクを見つけるための良いクエリは何でしょうか?

分類Dev

このスコアテーブルで以前のランクを見つけるための良いクエリは何でしょうか?

分類Dev

Angularを使用して、ユーザーが以前にチェックボックスをオンにしてからそれを呼び出すかどうかを保存するための最良の方法は何でしょうか?

分類Dev

pytestのテストで複数のブール値の組み合わせをサポートするための最良の方法は何でしょうか?

分類Dev

多くのifステートメントを回避するための最良の方法は何ですか?

分類Dev

これは、laravelでテンプレート/レイアウトシステムを構築するための良いアプローチですか?データをデータベースに保存したほうがいいでしょうか?

分類Dev

このデータをピボットするための良い方法は何でしょうか?

分類Dev

Prometheusでアラートステートメントをデバッグするための最良の方法は何ですか?

分類Dev

PHPテンプレートのヘッドセクションにメタタグを含めるための最良の方法は何ですか?

分類Dev

ソフトウェアがインストールされているかどうかを(スクリプトから)検出するための最良の方法は何ですか?

分類Dev

bashでは、クリーンアップ後に前のコマンドのステータスで終了するための最良の方法は何ですか

分類Dev

RSpecリクエストスペックを使用してJSONAPIをテストするための最良のアプローチは何ですか

分類Dev

春のブートアプリケーションでタスクをスケジュールするための最良の方法は何ですか

分類Dev

更新メソッドのためにフォームオブジェクトからエンティティにデータを転送するためのよりクリーンな方法は何でしょうか?

分類Dev

このアニメーションを作成するための最良の解決策は何でしょうか

分類Dev

このリモートデスクトップクライアントコンピューターの最も弱いリンクは何でしょうか?

分類Dev

オブジェクトがjavafxデスクトップアプリケーションに保存されているかどうかを検出するための最良の方法は何ですか?

Related 関連記事

  1. 1

    PythonのWebスクレイピングの結果でAndroidアプリを作成するためのよく知られたプラットフォームはありますか?そして、そうするための最良の方法は何でしょうか?

  2. 2

    Webアプリからボットフレームワークにコンテキスト情報を渡すための最良の方法は何ですか

  3. 3

    このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

  4. 4

    このSQLクエリをElequentステートメントとして作成するための最良の方法は何ですか

  5. 5

    スクリプト内からPythonコンソール出力を電子メールとして送信するための最良の方法は何ですか?

  6. 6

    これらの一連のifステートメントをリファクタリングする最良の方法は何ですか?

  7. 7

    オンラインストアバスケットをプログラミングするための最良の選択は何でしょうか

  8. 8

    オンラインストアバスケットをプログラミングするための最良の選択は何でしょうか

  9. 9

    ユーザーが文字列のリストを表示し、tkinterウィンドウでそれらの文字列を編集できるようにするための最良の方法は何でしょうか?

  10. 10

    インストール/アップグレードスクリプトを検証するための最良の方法は何ですか?

  11. 11

    反応アプリでドキュメントのスクロール率を取得するための最良の方法は何ですか?

  12. 12

    ChainBuilderを使用してガトリングユーザーフローを定義するための最良の方法は何でしょうか?

  13. 13

    このスコアテーブルで以前のランクを見つけるための良いクエリは何でしょうか?

  14. 14

    このスコアテーブルで以前のランクを見つけるための良いクエリは何でしょうか?

  15. 15

    Angularを使用して、ユーザーが以前にチェックボックスをオンにしてからそれを呼び出すかどうかを保存するための最良の方法は何でしょうか?

  16. 16

    pytestのテストで複数のブール値の組み合わせをサポートするための最良の方法は何でしょうか?

  17. 17

    多くのifステートメントを回避するための最良の方法は何ですか?

  18. 18

    これは、laravelでテンプレート/レイアウトシステムを構築するための良いアプローチですか?データをデータベースに保存したほうがいいでしょうか?

  19. 19

    このデータをピボットするための良い方法は何でしょうか?

  20. 20

    Prometheusでアラートステートメントをデバッグするための最良の方法は何ですか?

  21. 21

    PHPテンプレートのヘッドセクションにメタタグを含めるための最良の方法は何ですか?

  22. 22

    ソフトウェアがインストールされているかどうかを(スクリプトから)検出するための最良の方法は何ですか?

  23. 23

    bashでは、クリーンアップ後に前のコマンドのステータスで終了するための最良の方法は何ですか

  24. 24

    RSpecリクエストスペックを使用してJSONAPIをテストするための最良のアプローチは何ですか

  25. 25

    春のブートアプリケーションでタスクをスケジュールするための最良の方法は何ですか

  26. 26

    更新メソッドのためにフォームオブジェクトからエンティティにデータを転送するためのよりクリーンな方法は何でしょうか?

  27. 27

    このアニメーションを作成するための最良の解決策は何でしょうか

  28. 28

    このリモートデスクトップクライアントコンピューターの最も弱いリンクは何でしょうか?

  29. 29

    オブジェクトがjavafxデスクトップアプリケーションに保存されているかどうかを検出するための最良の方法は何ですか?

ホットタグ

アーカイブ