JS で列挙をシミュレートする方法

JS で列挙をシミュレートする方法

序文

現在の JavaScript には列挙の概念がありません。一部のシナリオでは、列挙を使用するとデータの正確性をより確実にし、データ検証プロセスを削減できます。以下では、JavaScript で列挙効果をシミュレートする方法を紹介します。

列挙の主な特徴

  • 列挙値は繰り返すことができません
  • 変更できません

成し遂げる

日々を過ごす;
(関数 (日数) {
    days[days["Sunday"] = 0] = "日曜日";
    days[days["Monday"] = 1] = "月曜日";
    days[days["Tuesday"] = 2] = "火曜日";
    days[days["水曜日"] = 3] = "水曜日";
    days[days["木曜日"] = 4] = "木曜日";
    days[days["金曜日"] = 5] = "金曜日";
    days[days["Saturday"] = 6] = "土曜日";
})(日数 || (日数 = {}));

この時点で、days オブジェクトは基本的に列挙効果を実装しています。列挙値またはインデックスを通じて days オブジェクトにアクセスできますが、列挙の重要な特徴は、変更できないことです。この時点で、days は自由に変更できます。Object.freeze 関数を使用してオブジェクトが変更されないようにし、変更不可能なオブジェクトを再エクスポートできます。完全なコードは次のとおりです。

日々を過ごす;
(関数 (日数) {
    days[days["Monday"] = 1] = "月曜日";
    days[days["Tuesday"] = 2] = "火曜日";
    days[days["水曜日"] = 3] = "水曜日";
    days[days["木曜日"] = 4] = "木曜日";
    days[days["金曜日"] = 5] = "金曜日";
    days[days["Saturday"] = 6] = "土曜日";
    days[days["Sunday"] = 0] = "日曜日";
})(日数 || (日数 = {}));

//列挙可能なオブジェクトをエクスポート export EnumWeek = Object.freeze(days)

上記は、JS を使用して列挙をシミュレートする方法の詳細です。JS の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • 例を通して js の列挙可能属性と列挙不可能属性を解析する
  • JavaScript 列挙選択 jQuery プラグイン コード例
  • JavaScript 列挙型の定義と使用法
  • Node.JSは、現在のフォルダとサブディレクトリ内のすべてのコードファイルの行数を列挙してカウントします。
  • JavaScript で Emrips アンチプライム列挙を実装するためのサンプル コード
  • JavaScript学習ノート_列挙型の簡単な実装、ポーカーアプリ
  • JS オブジェクトのプロパティ関連 (プロパティの確認、プロパティの列挙など)
  • JavaScript の列挙関数の詳細な分析
  • 列挙をエミュレートする JavaScript の簡単な例
  • JavaScript オブジェクトを列挙する関数

<<:  LinuxにPython 3.6をインストールして落とし穴を避ける

>>:  JavaScript オブジェクトを比較する 4 つの方法

推薦する

Vue3 (V) HTTPライブラリaxiosの統合の詳細

目次1. axiosをインストールする2. アクシオスの使用1.ホームページでaxiosを参照する2...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

MySQL パーティション テーブルの基本入門チュートリアル

序文最近のプロジェクトでは、大量のデータを保存する必要があり、このデータには有効期限があります。クエ...

Linux での chmod コマンドの使用方法の詳細な説明

chmod コマンド構文chmod コマンドを使用する場合の正しい構文は次のとおりです。 chmod...

JavaScriptエンジンV8の実行プロセスの詳細な説明

目次1. V8ソース2. V8サービスターゲット3. V8の初期アーキテクチャIV. V8の初期アー...

AWSサーバーリソースを無料で使用する方法を教えます

AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...

MySQL が group by をサポートしない場合の解決策の概要

MySQL 5.7.x の最新バージョンをダウンロードしてインストールしました。デフォルトでは、on...

CSSで背景ぼかしを設定する方法

ページを作成するときに、ページの見栄えを良くするために、背景画像を設定する必要があることがよくありま...

IE6/7 における a.getAttribute(href,2) 問題の分析と解決

簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作...

MySQL で B+ ツリー インデックスを使用する利点は何ですか?

この問題を理解する前に、まず MySQL テーブルのストレージ構造を確認し、次にバイナリ ツリー、マ...

折りたたまれたテーブル行要素のバグ

例を見てみましょう。コードは次の通り非常にシンプルです。コードをコピーコードは次のとおりです。 &l...

Linux テキスト検索コマンド find の詳細な使用方法

find コマンドは主にディレクトリやファイルを検索するために使用され、一致のために複数のパラメータ...

Node.js における非同期プログラミングの知識ポイントの詳細な説明

導入JavaScript はデフォルトでシングルスレッドであるため、コードは並列実行するための新しい...

Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...

Dockerは1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...