JS で if 判定をスムーズに行う方法

JS で if 判定をスムーズに行う方法

序文

プロジェクト内の小さな要件ポイントでは、ボタンをクリックして数十の条件ボックスを検証し、すべての条件ボックスにデータが入力(選択)されているかどうか(少なくとも1つの条件が真であるかどうか)を判断し、対応する操作を実行します。

判定条件ボックスには、ラジオボタン単一選択ボックス、チェックボックス複数選択ボックス、入力ボックス、入力数値カウンタ、選択セレクタ、スイッチスイッチなどが含まれます。

このプロジェクトでは、ElementコンポーネントライブラリV2.15.6を使用しています。

さまざまな条件に対応するデータ型とデフォルト値

  • ラジオボタン文字列 ''
  • チェックボックス複数選択ボックス配列[]
  • 入力ボックスの文字列を入力してください ''
  • InputNumber カウンター番号 0
  • 選択
    • 単一選択文字列 ''
    • 複数選択配列 []
  • スイッチ スイッチ ブール値 false

コードの実装

アイデア 1

ifを使用して直接判断すると、コードは次のようになります(変数はシミュレーション変数です)

// 複数条件の判定は次のように始まります if (obj.radio1 || obj.checkbox1.length > 0 || obj.input1 || obj.inputNumber1 > 0 || obj.select1 || obj.select2.length > 0 || obj.switch1 || obj.radio2 || obj.checkbox2.length > 0 || obj.input2 || obj.inputNumber2 > 0 || obj.select3 || obj.select4.length > 0 || obj.switch2 ...) {
  // 何かをする
} それ以外 {
  // 条件が満たされない場合は、これを表示します。$message({
    メッセージ: 「条件を選択してもう一度お試しください」
    タイプ: '警告'
  })
  偽を返す
} 

実際のプロジェクトシナリオでは、変数名には多くの意味的な文字があります。if をいくつか書くだけでは、長い文字列を書くことになります。そして、いくつか書いたら、それ以上書けなくなります (たくさんのくだらないことを書いているように感じます)。

もっとエレガントな方法で実現できるでしょうか?

アイデア2

判定する変数を配列に入れて、map を使用してブール型に処理し、includes を使用して配列に指定されたブール値が含まれているかどうかを判定します。

// 次のように複数条件判定が始まります const arr = [
  obj.radio1、
  obj.checkbox1.長さ、
  オブジェクト入力1、
  obj.入力番号1、
  オブジェクト選択1、
  obj.select2.長さ、
  obj.switch1、
  obj.radio2、
  obj.checkbox2.長さ、
  obj.input2、
  obj.inputNumber2、
  オブジェクト選択3、
  obj.select4.長さ、
  オブジェクトスイッチ2 
  ...
]

定数 arr1 = arr.map(item => Boolean(item))
(arr1.includes(true))の場合{
  // 何かをする
} それ以外 {
  // 条件が満たされない場合は、これを表示します。$message({
    メッセージ: 「条件を選択してもう一度お試しください」
    タイプ: '警告'
  })
  偽を返す
} 

そうですね、大量の判定をこの方法で処理するとスムーズになりますね。^-^

要約する

js での if 判定をスムーズにする方法についての記事はこれで終わりです。js での if 判定に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

参照ドキュメント

  • developer.mozilla.org/zh-CN/docs/…
  • developer.mozilla.org/zh-CN/docs/…
  • developer.mozilla.org/zh-CN/docs/…
以下もご興味があるかもしれません:
  • Iframe の内外のページで JS がどのように動作するかの概要
  • JSON.stringify の簡易版の実装とその 6 つの主要機能の詳細な説明
  • JSON.stringify のさまざまな用途のまとめ
  • Vue は PDF ファイルのオンライン プレビューを実装します (pdf.js/iframe/embed を使用)
  • JavaScript JSON.stringify() の使用法の概要
  • JSON.stringify を使用する際に発生する循環参照の問題を解決する方法の詳細な説明
  • json.stringify() と json.parse() の違いと使い方
  • Selenium+BeautifulSoup+jsonはスクリプトタグ内のjsonデータを取得します
  • JavaScript のカンマ式が含まれている場合について

<<:  HTMLフォームタグチュートリアル(1):

>>:  Dockerコンテナのタイムゾーン調整操作

推薦する

Nginx の負荷分散方法の概要

負荷分散を理解するには、まずフォワード プロキシとリバース プロキシを理解する必要があります。注記:...

MySQL OOM (メモリオーバーフロー) の解決策

OOM は「Out Of Memory」の略で、メモリオーバーフローを意味します。メモリ オーバーフ...

虫眼鏡効果を実現するJavaScript

この記事では、虫眼鏡効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...

MySQL 8.0ドライバとAlibaba Druidバージョン間の互換性の問題を解決

この記事では主に、MySQL 8.0 ドライバーと Alibaba Druid バージョン間の互換性...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rule...

ウェブフロントエンドエンジニアにおすすめのヒント

まず、Webフロントエンドエンジニアの価値についてお話ししましょう。現在、Web製品のインタラクショ...

Vueデータ割り当て問題の解決

私が長い間遭遇してきた問題を要約してみましょう。プロジェクトでは、フロントエンドをレンダリングするた...

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

古典的なスネークゲームの JavaScript 実装

この記事では、古典的なスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに...

Chrome 4.0 は GreaseMonkey スクリプトをサポートします

GreaseMokey (中国語では Grease Monkey Script と呼んでいます) は...

MySQLのトランザクション特性とレベル原則の分析

1. トランザクションとは何ですか?データベース トランザクション (略称: トランザクション) は...

Windows サーバー ポートを開きます (例としてポート 8080 を使用します)

ポートとは何ですか?私たちが通常参照するポートは、物理的な意味でのポートではなく、具体的には TCP...

負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例

Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...

ローカル画像サーバーのNginx構成の実装

目次1. Nginx の紹介2. 画像サーバーの構築1. Nginx の紹介Nginx はリバース ...