ES 6-セット

2305 ワード

ES 6の前に、行列はjavaScriptの中の唯一の集合オブジェクトです.他のプログラミング言語に接触したことがあると、集合を表すためのデータ構造はしばしば2つあります.セットとMap.Setには重複した要素のリストがありません.Mapの要素は一つ一つのキーのペアです.この記事はSetだけ言って、Mapは別の文章を書きます.Setの関連知識を見てみましょう.Set 1を作成する:new Set()を通じて空のリストを作成する.
let set = new Set();
以上でSetリストを作成しましたが、まだ何の要素もありません.後の内容では、どのように元素を追加するかを見ることができます.
2:反復可能なオブジェクトでリストを初期化する
let array = [1, 2];
let map = new Map([['name', 'mike'],['age', 25]]);
let setOfArray = new Set(array);
let setOfMap = new Set(map);

setOfArray.forEach(function (value, key, set) {
    console.log(`${key}: ${value}`);
});

setOfMap.forEach(function (value, key, set) {
    console.log(`${key}: ${value}`);
});
上記の例の中のsetOfAray.forEach()によって得られた印刷結果は以下の通りです.
1: 1
2: 2
このプリント結果から、Set要素のkeyとvalueは同じ値であることが分かります.
上記の例の中のsetOfMap.forEach()によって得られた印刷結果は以下の通りです.
name,mike: name,mike
age,25: age,25
私たちはMapでSetを初期化できますが、それは明らかに意味がないです.通常はArayをもっと使います.Setの増加は、new Set()に任意のパラメータを伝達しないことによって空セットを作成した後、一般的には、add()方法によって要素を追加する必要がある:
let set = new Set();
set.add(1);
set.add('1');
console.log(set.size); // 2
上記の例では、数字型と文字列形の1をそれぞれ追加しました.最終的には2つの要素が得られます.これはSetを通常のオブジェクトと区別するところです.一般的なオブジェクトは、数値型の属性名を強制的に文字列型に変換します.でもセットはできません
Setの削除はSetの中のすべての要素を削除したいです.clear()方法を呼び出すだけです.
let set = new Set([1, 2, 3]);
set.clear();
console.log(set.size); // 0
四:Setの調べは、ある要素がセット内にあるかどうかをhas()方法で調べられます.
let set = new Set([1, 2, 3]);
console.log(set.has(1)); //true
console.log(set.has('1'));//false
5:Setの減算delete()方法は、Setのセットからある要素を除去するために使用できます.
let set = new Set([1, 2, 3]);
set.delete(1);
console.log(set.has(1)); //fasle
console.log(set.size); // 2
セブン:Setの使用シーンは前の文章から順にSet集合の重要な特性を理解しました.例えば、
1: Set      
2: Set   key value    
3:               Set 
これらの特性により,Arayの脱重を実現できた.基本的な考え方は:
1:     Array          Set  ,               Set
2:        (...),        Set         
コードの例:
let originalArray = [1, 1, 2, 2, 3, 4];
let set = new Set(originalArray);
let newArray = [...set];
console.log(newArray); // [1, 2, 3, 4]
以上、Setのいくつかの基本的な特性、文法と使用シーンです.