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 つの方法

推薦する

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

ブラウザ(IEシリーズ)を判別するための条件付きコメント

<!--[if IE 6]> IE6 のみが認識可能 <![endif]-->...

Zookeeper&Kafka クラスターを構築するための Docker の実装

最近Kafka勉強しています。クラスタの状態をテストする準備をしていたときに、仮想マシンを 3 つ開...

Linux での MySQL 5.7.19 (tar.gz) インストール グラフィック チュートリアル

Linux で MySQL-5.7.19 バージョンをインストールするための最初のチュートリアル。す...

Vue3 手動カプセル化ポップアップ ボックス コンポーネント メッセージ メソッド

この記事では、ポップアップボックスコンポーネントメッセージのVue3手動カプセル化の具体的なコードを...

IE6 の select を div でカバーできないバグの解決方法

div を使用してマスクを作成したり、ポップアップ ウィンドウをシミュレートしたりします。ただし、I...

MySQL 文字セットの表示と変更のチュートリアル

1. 文字セットを確認する1. MYSQLデータベースサーバーとデータベースの文字セットを確認する方...

MySQLクエリ速度が遅く、パフォーマンスが低下する原因と解決策

1. データベースクエリの速度に影響を与えるものは何ですか? 1.1 データベースクエリ速度に影響を...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

友達やグループを見つけるためのJavaScriptのLayim

現在、layuiの関係者はlayim友達検索ページの構造とスタイルを提供していません。私は個人的に非...

Centos7 DockerでNginxファイルを変更するプロセスの詳細な説明

1. docker に nginx をインストールします。 docker に Nginx をインスト...

Nginx が Apache より優れている理由

Nginx は、わずか数年で Web サーバー市場の大部分を占めるようになりました。周知のとおり、N...

ins タグと del タグの属性と使用法

insとdel は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、また...

回転灯効果を実現するWeChatアプレットの例

序文日常の開発では、テキストの水平スクロール効果(一般にカルーセルと呼ばれる)によく遭遇します。これ...

MySQL 8.0.21 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.21のインストールと設定方法を記録してみんなで共有します。 1. ダウンロード1...