ES6地図とSet
1、マップ
ます。<script type = "text / JavaScriptを"> // ES6のためには、地図データ構造を提供します。これは、オブジェクトだけでなく、キーと値のペアのセットに似ているが、「キー」の範囲は、文字列に限定されるものではなく、(オブジェクトを含む)の値の各種のキーとして使用することができます。 M = constの新しい新マップ(); // マップ作成 のconst {Pを= O 'のHello World' }; m.set(O、 'コンテンツ')// オブジェクトがキーとして使用することができ m.get(O)// "コンテンツ" m.has(O)// trueに メートル。削除(O)// trueに m.has( O)// falseに constの= M1 新しい新しい地図([ [ '名前'、 'ジョン・ドウ' ]、 [ 'タイトル'、 '著者' ] ]); // 地図は、パラメータとして配列を受け入れることができます。アレイのメンバーは、キーと値のペアの配列が1つを発現しています。 m1.size // 2 m1.has( '名前')// trueに m1.get( '名前')// "ジョー・スミス" m1.has( 'タイトル')// trueに m1.get( 'タイトル')// 「著者」 // 一般的な方法 M2 = constの新しい新しい地図([[ 'foo'で、trueに ]、[ 'バー'、falseに]]); m2.size; // サイズ取得 ( 'DWD'、m2.setをtrueに); //は上のキーを設定 m2.get( 'DWD'); //は、キーの値を取得 m2.has( 'DWDを'); / / キーかどうかを判断する 。M2 削除 ;( 'DWD')// 削除キー m2.clear(); // クリア // トラバース constの地図= 新しい新しい地図([ 【 'F'、 'いいえ' ]、 [ 'T'、 'yes'に]、 ]); 以下のために{(map.keysのキーを()とします) console.log(キー); } // "F" // "T" 以下のために{(map.valuesの値を()とします) console.log(値)。 } // 「なし」 // 「はい」ありません 用{()(map.entriesの項目を聞かせて) console.log(項目[ 0]、項目[1 ])。 } // "F" "いいえ" // "T" "はい" // 或者 ため{(map.entriesの[キー、値を()とします) console.log(キー、値)。 } // "F" "いいえ" // "T" "はい" // map.entries()と同等 のため(地図のLET [キー、値]){ console.log(キー、値)。 } // "F" "NO" // "T" "YES" map.forEach(関数(値、キーマップ){ console.log( "キー:%sの、価値:%s"は、キー、値); }); // 他のデータ構造の交換 // 。1、スイッチアレイ地図は MYMAP = CONST 新新)(地図を .SET(真、7 ) .SET({FOO: 3}、[ 'ABC' ])。 [... MYMAP] // [[真]、[7]、[{FOO:3}、[ 'ABC']]] // 2、配列転送地図 新新マップ([ [ 真、7 ] [{FOO: 3}、[ 'ABC' ] ]) // マップ{ // 真へ=> 7、。 // オブジェクトfoo {:3} => [ 'ABC'] // } // 3は、JSONにマッピング // 一つの場合、マップキー名であります文字列は、その後、あなたはJSONにオブジェクトを選択することができます。 関数strMapToJson(strMap){ 戻りJSON.stringify(strMapToObj(strMapを)); } MYMAPましょう = 新しい地図()セット( 'はい'、真).SET( 'いいえ'、偽の); strMapToJson(MYMAP) // 「{ 『はい』:trueに、 『NO』:} falseに」 // 別の場合、非文字列とキー名地図、その配列は、JSONに選択することができます。 関数mapToArrayJson(MAP){ 戻りJSON.stringify([マップ...])。 } MYMAPせ = 新しい地図()セット(真、7).SET({FOO:3}、[ 'ABC' ])。 mapToArrayJson(MYMAP) // '[[真]、[7]、[{ "FOO":3}、[ "ABC"]]]] // 4、地図にJSON // 地図へのJSONは、通常の状況下では、すべてのキーは文字列です。 関数jsonToStrMap(jsonStr){ リターンobjToStrMap(JSON.parse(jsonStr))。 } jsonToStrMap( '{ "はい":真、 "いいえ":偽}' ) // 地図{ 'はい' => trueの場合、 'NO' =>偽} // しかし、特殊なケースがあり、全体JSONは配列であり、そして各アレイ部材自体は、二つの部材の配列です。 // この時点で、それは一地図に変換することができます。これは、多くの場合、逆の操作に地図JSON配列です。 関数jsonToMap(jsonStr){ 戻り 、新たな新しいマップ(JSON.parse(jsonStr))。 } jsonToMap( '[真]、[7]、[{ "FOO":3}、[ "ABC"]]]] ) // マップ{真=> 7、オブジェクト{FOO:3} => [ 'ABC'] } </ SCRIPT>
2、セット
<スクリプトタイプの=「テキスト/ JavaScriptを」> // 使用セットデータ構造 // ES6は、新しいデータ構造のセットを提供します。これは、配列に類似しているが、メンバの値がユニークでない重複した値です。 S1 = CONST 新しい新しいセット([1、2 ,. 3 ,. 4 ,. 4。]); console.log(S1)。 S2 CONST = 新しい新しいセット([1、2 ,. 3 ,. 4 ,. 5 ,. 5 ,. 5 ,. 5。]); // 繰り返さない、アレイ重み付けするために使用することができる にconsole.log(s2.sizeを); // 5。 LET S3 Array.from =(新しい新しいセット( 'abbccddeeee')。)( '')に参加; // 文字列の重みに はconsole.log(S3); // ABCDE // 一般的な方法 S4をしましょう= 新しい新しいセット(); s4.add( 1); // それ自体がいくつかの値、戻りセット構造追加 s4.size; // 戻りを設定インスタンスのメンバの総数 s4.has(1); // 戻り値が設定されているかどうかを示すブール値メンバー S4。削除(1); // 値を削除し、削除が成功したかどうかを示すブール値を返します。 s4.clear(); // すべてのメンバー、ノーリターン値を削除します。 // 遍历 せS5 = 新しいセット([ '赤'、 '緑' '青' ])。 用{()(s5.keysの項目を聞かせて) console.log(アイテム) } // 赤 // 緑 // 青 用{()(s5.valuesの項目を聞かせて) console.log(アイテム) } // 赤 // 緑 // 青 用{()(s5.entriesの項目を聞かせて) console.log(アイテム) } // [ "赤"、 "赤"] // [、 "緑"、 "緑"] // [ "青"、 "青"] s5.forEach((値、キー) =>はconsole.log(キー+ ':' +値))// 也可以forEachの遍历 // SETアレイ変換を せArray.from =配列(S5).join( '' )。 console.log(アレイ) </ SCRIPT>