Map は、ECMAScript 6 仕様で導入されたデータ構造です。これは、他のプログラミング言語の辞書やハッシュ テーブルと同様に、キーと値のペアのリストを保存する便利な方法です。 マッピングとは何かJavascript オブジェクトは基本的にキーと値のペア (ハッシュ構造) のコレクションですが、従来はキーとして使用できるのは文字列のみであるため、その使用は大きく制限されます。この問題を解決するために、ECMAScript 6 では Map データ構造が導入されました。オブジェクトに似ており、キーと値のペアの集合でもありますが、「キー」の範囲は文字列に限定されず、あらゆるタイプの値(オブジェクトを含む)をキーとして使用できます。つまり、オブジェクト構造は「文字列と値」の対応を提供し、マップ構造は「値と値」の対応を提供します。これは、ハッシュ構造のより完全な実装です。 Map の基本的な使い方を理解するために、簡単な例を見てみましょう。 //マップインスタンスを宣言する const page_info = new Map() // マップに要素を追加する page_info.set("seo", { "キーワード": "devpoint、マップ", "description":"Map オブジェクトは単純なキー/値マッピングであり、キーと値は何でも (プリミティブまたはオブジェクト) にすることができます。" }) page_info.set("タイトル", "javascript es6 マップ") コンソール.log(ページ情報) console.log(typeof page_info) // オブジェクト 出力は次のようになります。 地図 { 'seo' => { キーワード: 'devpoint、Map'、 説明: 「Map オブジェクトは、キーと値が何でも (プリミティブ値またはオブジェクト値) になる単純なキー/値マッピングです。」 }, 'title' => 'JavaScript ES6 のマップ マッピング' } 物体 出力結果から判断すると、Map は本質的にオブジェクトです。 オブジェクトとマップの違いObject と Map の類似点は、どちらもキーによって値を保存および取得し、キーを削除できることです。両者は非常によく似ていますが、違いは次のとおりです。 マップの共通メソッドよく使用される Map メソッドには、set(key, value) の割り当て、get(key) の取得、指定されたキー名とそれに対応する値の削除 (delete(key))、has(key) の存在の確認、すべての値の取得 (values())、キー/値の反復子 (entries())、トラバーサル (forEach())、すべてのキー/値のペアのクリア (clear()) などがあります。 宣言と初期化新しい Map を作成します。 console.log(new_map); //出力: Map {} 割り当てセット割り当てでは map.set(key,value) を使用します。これを使用して、新しいキー/値のペアを追加したり、キー/値のペアを変更したり、Map オブジェクト全体を返したりできます。 const page_info = 新しいマップ() // 値を設定する page_info.set("seo", { "キーワード": "devpoint、マップ", "description":"Map オブジェクトは単純なキー/値マッピングであり、キーと値は何でも (プリミティブまたはオブジェクト) にすることができます。" }); コンソールログ(ページ情報); page_info.set("seo", "seo情報"); コンソールログ(ページ情報); 上記の例では、値を増分し、値を変更します。 地図 { 'seo' => { キーワード: 'devpoint、Map'、 説明: 「Map オブジェクトは、キーと値が何でも (プリミティブ値またはオブジェクト値) になる単純なキー/値マッピングです。」 } } マップ { 'seo' => 'seo 情報' } キー値を取得するキー値を取得するには、get(key) を使用します。取得した key->value が存在しない場合は、undefined を返します。 const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); 定数title = page_info.get("title"); seo_info は page_info.get("seo"); console.log(title); //javascript es6 マップ マッピング console.log(seo_info); //未定義 キー値を削除削除map.delete(key) は、指定されたキーのキーと値のペアを削除し、成功または失敗の結果を返します。削除が成功した場合は true が返され、それ以外の場合は false が返されます。 const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log(page_info); // マップ { 'title' => 'javascript es6 マップ マッピング', 'author' => 'devpoint' } const delete_author = page_info.delete("author"); seo を削除します。 console.log(deleted_author); // 真 console.log(deleted_seo); // 偽 console.log(page_info); // マップ { 'title' => 'javascript es6 マップ マッピング' } キー値が存在するかどうかを判定する指定されたキーが存在するかどうかを確認するには、map.has(key) を使用します。 const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); console.log(page_info); // マップ { 'title' => 'javascript es6 マップ マッピング' } console.log(page_info.has("title")); // 真 console.log(page_info.has("seo")); // 偽 すべてのキー値を取得する()const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log(page_info.values()); // [マップイテレータ] { 'javascript es6 マップマッピング', 'devpoint' } キー/値イテレータエントリ()map.entries() を使用して、Map オブジェクト内の各 [key, value] 配列を含む Iterator を返します。 const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log(page_info.entries()); 出力は次のようになります。
すべてのキー値を反復処理する forEach(callback)const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); page_info.forEach((値,キー)=>{ console.log(キー、値); }); 出力は次のようになります。
マップ内のすべてのキー値をクリアするclear()マップ内のすべてのキーと値のペアをクリアするには、map.clear() を使用します。 const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); ページ情報をクリアします。 console.log(page_info); // マップ {} 他のデータ構造との変換配列にマップマップを配列に変換する最も便利な方法は、スプレッド演算子を使用することです... const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log([...page_info]); // [ [ 'title', 'javascript es6 マップ マッピング' ], [ 'author', 'devpoint' ] ] オブジェクトへのマッピング関数 mapToObj(map) { オブジェクトを作成します。 map.forEach((v,k)=>{ 定数vは、 }); obj を返します。 } const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log( mapToObj(page_info)); 出力は次のようになります。
配列からマップへ配列を Map コンストラクターに渡すだけです (つまり、new Map(array))。 定数ページ情報 = [ ["title","JavaScript ES6 のマップ マッピング"], ["著者","開発ポイント"] ]; console.log(new Map(page_info)); // Map { 'title' => 'javascript es6 map マッピング', 'author' => 'devpoint' } マップするオブジェクトオブジェクトは Object.entries() を通じてマップに変換されます。 定数ページ情報 = { タイトル:"JavaScript ES6 のマップ マッピング", 著者:"devpoint" }; console.log(new Map(Object.entries(page_info))); // Map { 'title' => 'javascript es6 map マッピング', 'author' => 'devpoint' } JSONにマップマップをJSONに変換するには、まずマップをオブジェクトに変換し(上記のmapToObj)、次にJSON.stringifyメソッドを使用します。 関数 mapToObj(map) { オブジェクトを作成します。 map.forEach((v,k)=>{ 定数vは、 }); obj を返します。 } 関数 mapToJson(map){ JSON.stringify(mapToObj(map)) を返します。 } const page_info = 新しい Map(); page_info.set("title", "javascript es6 マップ マッピング"); page_info.set("author", "devpoint"); console.log( mapToJson(page_info)); // {"title":"javascript es6 マップ マッピング","author":"devpoint"} 要約するこれで、ECMAScript6 の Map マッピングの基本概念と一般的な方法についての記事は終了です。ECMAScript6 の Map マッピングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明
>>: Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します
MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...
序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...
目次出力出力パス出力.publicPath webpack-dev-server の publicP...
MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...
目次1. 使用方法1. 基本的な使い方2. 2番目のパラメータ - フィルター3. 3番目のパラメー...
皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイ...
Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...
1. インストール方法は? 1. [実行] -> [cmd] と入力して、小さな黒いウィンドウ...
この記事では、年、月、日の3段階のリンクを実現するためのJavaScriptの具体的なコードを参考ま...
まさか、2021年になってもTypeScriptについて聞いたことがない人がいるなんて?プロジェクト...
目次クラス void のポイントES6 矢印関数ヴュートファイvue-cli非同期と同期実行と展開ヒ...
必要なリンクにインライン スタイルを追加します。コードをコピーコードは次のとおりです。 <a ...
1. 絶対位置とマージンを使用するこの方法の原則は、左側と右側をドキュメントの流れから外れるように配...
MySQL では、LOAD_FILE() 関数はファイルを読み取り、その内容を文字列として返します。...
次のように、Win10でMysqlの解凍バージョンをインストールします。環境: win10 64ビッ...