JSデータ構造-Map:地図のマッピング方法、一般的に地図を作成します。

地図

  JavaScriptを(オブジェクト)のオブジェクトは、基本的にキーと値のペアのコレクションですが、唯一の文字列のキー名を指定して行うこと。これは、その使用は大きな制限で提供します。

  この問題を解決するために、ES6は、地図データ構造を提供します。これは、オブジェクトだけでなく、キーと値のペアのセットに似ているが、「キー」の範囲は、文字列に限定されるものではなく、(オブジェクトを含む)の値の各種のキーとして使用することができます。

   つまり、オブジェクトの構造を提供 - 対応を「文字列値」に、マップ構造を提供 - JSONデータ構造のよりよい実現の「値」に相当します。

  あなたは、「データ構造の」より多くの「リラックス」キーを必要とする場合、地図は、より多くのオブジェクトより適切な。

  特長:キーと値のペア=>問題マッピングニーズを持つ任意の型=>よりよい取り引き。

地図を作成します。

  自身地図コンストラクタを使用する場合、データの初期化パラメータを渡すことによって、コンストラクタです。

M =ましょう新しい)地図(;

 

  マップ機能を初期化するためのパラメータとして配列(または配列のようなオブジェクト)許容可能であり得ます。差が設定している。しかし、配列内のメンバーの地図は、ペアを表明し、キーと値のペアの配列です。

聞かせてメートル= 新しい地図([[ "名前"、 "zhangsan"]、[ "年齢"、20]]);

 

地図の属性

  これは、共通の属性です:サイズはMapインスタンスの総会員数を返します。

  

聞かせてメートル= 新しい地図([[ "名前"、 "zhangsan"]、[ "年齢"、20 ]]); 
console.log(m.size); // 2

 

 

地図方法

  使用動作(データのための操作)と(データを横断するための)トラバーサル方法の2つのカテゴリにマップ例の方法。

 

 

  操作の方法:

      セット(キー、値)のデータを追加または変更。設定キーの値に対応するキー、およびリターン構造自体地図

      データを取得する(キー)を取得します。キー、リターンが見つからない場合はリードキーは、キーに対応する未定義

      そこにデータがあると、ブール値を返すかどうかを確認するために(キー)を持っています。

      データを削除する(キー)を削除します。trueを返す正常に削除

      すべてのデータを消去するには()をクリアしない、ノーリターン値

ログ(delMap)。// 
//クリアすべてのデータ
map.clear(); 
にconsole.log(MAP); // マップ(0){}

  

  トラバーサル方法:

      地図は、3つの機能を提供し、トラバースは、トラバース・メソッドを生成します。

      キー()キー名を返すイテレータ

      値()イテレータのキーを返します

      エントリは()キーと値のペアのイテレータを返します。

      各部材トラバースのforEach()コールバック関数

numは=せて新しいマップ([ "1"、1]、[ "2"]、[2]、[ "3"、3 ])。
{(num.keys()の鍵せ)
 にconsole.log(キー)。
} 
// 1 
// 2 
// 3 
のための(LET num.values()の値){ 
 にconsole.log(値)。
} 
// 1 
// 2 
// 3 
のために{(num.entriesの項目()とする)
     はconsole.log(項目[ 0]、項目[1 ])。
} 
// か1 
// 2 2 
// 3 3 
// 将上面代码通过解构优化
{(num.entriesの[キー値]()とする)
     にconsole.log(キー、値)。
} 
// か1 
// 2 2 
// 3 3 
num.forEach((値、キー)=> { 
    にconsole.log(値、キー)
})
// 1 1 
// 2 2 
// 3 3

 

他のデータ構造と互換

 

配列にマップ

  最も便利な方法の配列にマッピングすることは、拡張演算子を使用することです....

    

= MYMAPせ、新たな新)(地図; 
MYMAP 
 .SET(trueに、 "真" 
 .SET(、 "偽"); // それぞれが新しいマップを返しますので、書き込みに取り付けることができる 
にconsole.log(MYMAP); / / {真=> "真"、偽=> "偽"へ} 
LET NEWMAP = [... MYMAP]; 
にconsole.log(NEWMAP); // ] [trueに、 "真"、[偽、 "偽" ]]

 

地図への配列

  コンストラクタで渡された配列の地図は、あなたは地図を回すことができます。

 

= [[着てみましょう本当の "真"]、[ 偽を、 "假" ]]; 
マップを聞かせて = 新しい地図(ARR)。
console.log(マップ)// {真=> "真"、偽=> "假"}

 

オブジェクトにマップ

  地図すべてのキーが文字列である場合、それがオブジェクトに変換することができます。

 

関数strMapToObj(strMap){ 
     OBJせ = {};
     {([K、V] strMapのせ)、
         OBJ [K] = ; V 
     } 
     戻りOBJ。
} 
せMYMAP = 新しいマップ()セット( "緑"、 "绿").SET( "赤"、 "红"。 )。
console.log(MYMAP)。// { "グリーン" => "绿"、 "赤" => "红"} 
はconsole.log(strMapToObj(MYMAP))。// {緑: "绿"赤"红"}         

 

地図にオブジェクト

 

機能objToStrMap(objが){ 
     strMapましょう = 新しい地図();
     (項目せにおけるOBJ)を{ 
        strMap.set(項目、OBJ [アイテム])
     } 
     戻りstrMap。
} 
OBJましょう "zhangsan"、年齢:= {名前20 }。
console.log(objToStrMap(OBJ))。
// { "名" => "zhangsan"、 "年齢" => 20}    

 

おすすめ

転載: www.cnblogs.com/jiayouba/p/11946594.html