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

推薦する

CSS で写真のスタッキング効果を実装するサンプルコード

成果を達成するステップ1. 初期index.html最初の写真、一番上の写真を作成します。写真の i...

CSS3アニメーションとHTML5の新機能の詳しい説明

1. CSS3アニメーション☺CSS3 アニメーションは、JavaScript を介して要素のスタイ...

初心者向けウェブサイト構築ガイド⑦:美しいウェブサイトを作るのはとっても簡単

私はかつて、ウェブサイトを一度も構築したことのない人々が、初心者向けのウェブサイト構築方法に関する私...

Vue3 での Teleport の使用に関する詳細な説明

目次テレポートの目的テレポートの仕組みこの記事では、以下の内容を取り上げます。テレポートの目的テレポ...

CentOS7.4 に MySQL 5.7.26 をインストールするための詳細なチュートリアル

CentOS にはデフォルトで MariaDB がインストールされていますが、これは MySQL の...

テキストの両側に水平線を描くための CSS のサンプルコード

この記事では、テキスト中央の両側に水平線を引く効果を実現する CSS のサンプルコードを紹介し、皆さ...

手の動きをリアルタイムで監視するための Handtrack.js ライブラリ (推奨)

【はじめに】: Handtrack.jsは、ブラウザ上で直接リアルタイムの手の動きの追跡と検出を実...

ウェブページの読み込み速度を上げる簡単なヒント

Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...

Docker で Ubuntu に Python3 と Pip をインストールする際の問題

文章1) Ubuntuイメージをダウンロードする docker プル Ubuntu 2) 画像を見る...

HTML割引価格計算の実装原理とスクリプトコード

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

WeChatアプレット+EChartsで動的更新プロセス記録を実現

序文最近、小さなプログラムでリアルタイムにチャートを更新するという要件に遭遇しました。最初は wx-...

Vueはシンプルなメモ帳機能を実装します

この記事では、参考までに、簡単なメモ帳機能を実装するためのVueの具体的なコードを紹介します。具体的...

XHTML 入門チュートリアル: フレーム タグの使用

<br />フレーム構造により、ブラウザの 1 ページに複数の Web ページを同時に表...

HTML4とHTML5の違い: 入力にフォーカス実装コードを追加する方法

html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...