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

推薦する

Vue.jsクラウドストレージで画像アップロード機能を実現

序文ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. オブジェクトスト...

MySQL 8.0.12 winx64 解凍バージョンのインストール グラフィック チュートリアル

mysql-8.0.12-winx64 解凍版のインストールを記録して、みんなで共有しました。 1....

Vue要素のバックグラウンド認証プロセスの分析

序文:最近、プロジェクトで管理システムに遭遇しました。権限設定が非常に興味深いと思いました。自分の学...

docker+jenkins+node.js の自動デプロイメント環境をゼロから構築する方法

このケースはCentOS 7システムに基づいていますDockerの使用経験がある人に適していますLi...

DockerでMySQLコンテナを作成する簡単な手順

序文すでに Docker をインストールしており、Docker について簡単に理解しています。ここで...

MySQL ステートメントコメントの紹介

MySQL は次の 3 種類のコメントをサポートしています。 1. 行末の「#」文字から。 2. 「...

異なるページ間のJavaScriptデータ転送(URLパラメータ取得)

Web ページでは、あるページに情報を入力すると、別のページにジャンプし、入力した情報が別のページ...

Docker の詳細なイラスト

1. Dockerの紹介1.1 仮想化1.1.1 仮想化とは何ですか?コンピュータにおける仮想化とは...

CSS における px、em、rem、pt の特徴、違い、変換について詳しく説明します。

コンセプト紹介: 1. px (ピクセル):仮想的な長さの単位で、コンピュータ システムのデジタル画...

HTML テーブル マークアップ チュートリアル (14): テーブル ヘッダー

<br />HTML 言語では、タグを使用してテーブルにタイトルを自動的に追加できます。...

Vue はウェブページの言語切り替えの国際化を実装します

1. 基本的な手順1: yarn add vue-i18nをインストールするこのパスに新しい .js...

CSS でリスト スタイル属性を設定する方法 (この記事を読むだけ)

リストスタイルのプロパティHTMLには、順序なしリストと順序ありリストの2種類のリストがあります。仕...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...

Linux 環境変数とプロセス アドレス空間の概要

目次Linux 環境変数とプロセスアドレス空間コードを通じて環境変数を取得するプロセスアドレス空間な...

nginxのインストールと設定の詳細なプロセス記録

目次1 nginxの紹介1 nginxとは何か2 つのアプリケーション シナリオ2 nginxのイン...