1.セット
は配列に似ていますが、メンバーの値は一意であり、重複する値はありません。
Set自体はコンストラクターであり、Setデータ構造を生成するために使用されます。
配列の重複排除と文字列の重複排除:
[...new Set(array)];
Array.from(new Set(array));
[...new Set('ababbc')].join('')
// "abc"
セットに値を追加する場合、型変換は行われません。
Array.fromメソッドは、Set構造体を配列に変換できます。
const items = new Set([1, 2, 3, 4, 5]);
const array = Array.from(items);
!!!Setを使用すると、Union、Intersect、Differenceを簡単に実装できます。
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}
// (a 相对于 b 的)差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}
2. WeakSet
構造はSetに似ており、一意の値のコレクションでもあります。ただし、Setとは2つの違いがあります。
まず、WeakSetのメンバーはオブジェクトのみであり、他のタイプの値ではありません。
メンバーは弱参照であり、ガベージコレクションメカニズムによってリサイクルでき、DOMノードを保存するために使用でき、メモリリークを引き起こすのは簡単で
はなく、トラバースできません。メソッドには、追加、削除、
3.マップ
は基本的に、キーと値のペアのコレクションです。コレクションと同様に、マップを
トラバースでき、さまざまなデータ形式でさまざまな方法で変換できます。
第4に、WeakMap
はオブジェクトをキー(nullを除く)としてのみ受け入れ、他のタイプの値をキーとして受け入れません。
キーは弱い参照です。キー値は任意です。キー名が指すオブジェクトはガベージコレクションできます。 。現時点では、キー名は無効であり、
トラバースできません。メソッドはget、set、has、deleteです。