セット
ES6は、新しいデータ構造のセットを提供します。これは、配列に類似しているが、メンバの値がユニークでない重複した値です。
特徴:独自性=>ユニーク=>データに再手術することができます。
注:デエンファシスのコレクションは、===一致一致です。
コレクションを作成します。
セット自体は、集合データ構造を生成するコンストラクタを呼び出すコンストラクタです。
キーワード識別子=新セット();
実施例セット新しい新しい= IはLET();
設定された機能は、データの初期化のために使用されるパラメータとして配列(または配列のようなオブジェクト)をとることができます。
私は新しいセット([1、2、3、4、4)=せ、{1、2、3、4}のセットであろう
注:値を初期化するときに与える場合は自動的に削除が繰り返されます。
コレクションではなくリテラル宣言。
属性のセット
これは、共通の属性です:サイズがセットインスタンスのメンバーの合計数を返します。
sは新しいセット([1、2、3)=ましょう。
console.log(s.size)。// 3
コレクション方法
動作方法(データのための操作)と(データを横断するための)トラバーサル方法:実施例セットの方法は、2つのカテゴリに分けます。
操作の方法:
データを追加する(値)を追加し、新しい構造のセットを返します。
(値)、削除データを削除し、それが正常に削除されているかどうかを示すブール値を返します。
データがあるかどうかを確認するために(値)が、それはブール値を返します。
すべてのデータを消去するには()をクリアしない、ノーリターン値
SETは=せ新規新しいセット([1、2 ,. 3 ,. 4 ,. 4 ]); //は、データを追加5。 LET addSet set.add =(5 ) にconsole.log(addSet); // (5)。集合{1、 2、3、4、5} // 削除データが4S 。せdelSet = SET 削除(4 ;) はconsole.log(delSet); // trueに // チェックデータ4があるか否かを HashSetの= set.hasでLET(4 )。 (HashSetの中)にconsole.logは; // falseに //は、すべてのデータクリア ; set.clear() はconsole.log(SET); // セット(0){}
トラバーサル方法:
セットトラバーサルは、3つの機能を提供し、トラバーサルメソッドを生成します。
キー()キー名を返すイテレータ
値()イテレータのキーを返します
エントリは()キーと値のペアのイテレータを返します。
各部材トラバースのforEach()コールバック関数
色=せて新しいセット([「赤」、「緑」、「青」])。 用(color.keysのLET項目()){ にconsole.log(アイテム) } // 赤 // 緑色 // 青 用(color.valuesのLET項目()){ にconsole.log(アイテム) } // 赤 // 緑色 // 青 用(color.entriesのLET項目()){ にconsole.log(アイテム) } // [ "赤"、 "赤"] // [ "緑"、 "緑"] // [、 "青"、 "青"] color.forEach((アイテム)=> // 赤 // 緑 // 青
および関連操作の配列
セットスイッチアレイ:
セットの設定を操作するために使用できるように拡張されたオペレーターので...、原理はまた、forループ-の内部に使用されています。
アレイ構成構造を変換するために、例えば、設定します。
色=せて新しいセット([「赤」、「緑」、「青」])。 colorArrを聞かせて = [...色];
重複排除アレイ:
セット構成および拡張演算の組み合わせは、アレイの反復メンバーを除去することができます。
ARR = LET [1,2,2,2,2、 "2"、24,5,6 ]; // ステップ1:のセットに配列 LETのSET = 新しい新しいセット(ARR); // 削除されて重複する値は、現在ではありませんアレイの集合{1セット、2、2 ''、24 ,. 5 ,. 6。} // ステップ2:セットスイッチアレイ ARR = [... SET]; // [1、2、2 ''、24 ,. 5。 、6]
スプレッド
NUM1 =せて新しいセット([1、2、3、4 ])。 NUM2せ = 新しいセット([3、4、5、6 ])。 // 并集 組合=ましょう新しいセット([... NUM1、NUM2 ...]); console.log(労働組合)。// 集合{1、2、3、4、5、6} // 交集 交差せ= 新しいセット( [... NUM1] .filter(X => num2.has(X)) ) はconsole.log(交差); // 集合{3,4} // 差集 せ差= 新しいセット( [... NUM1] .filter(X =>!num2.has(X)) ) console.log(差分)。// 集合{1,2}