##Setオブジェクトとは
ES2015(ES6)から導入された、重複した値がないことを保証したコレクション。
以下のような特徴があります。
- 値が一意であることが保証されている
- 順序を持たず、インデックスでアクセスできない
##Setの使い方
####動作確認環境
- Windows8.1
- Node.js v10.14.1
####Setの作成
var set = new Set();
これで作成することができます。
中身が空のSetオブジェクトが作成されます。
コンストラクタに初期値を渡すこともできます。
初期値として渡すことができるのは、Iteratorオブジェクトです。
Iteratorについてこちらの記事がとても分かりやすかったため、リンクさせていただきます。
JavaScript の イテレータ を極める!
以下の例では、Iteratorオブジェクトである配列を初期値として渡します。
var set = new Set(["value1", "value2", "value3"]);
console.log(set.size);
// 3
####サイズの取得
size
プロパティを参照することで、Setオブジェクトに含まれる値の数を取得します。
var set = new Set(["value1", "value2", "value3"]);
console.log(set.size); // 3
####値の追加 add
add(value)
で、値を追加することができます。
すでに同じ値がSetオブジェクト内にある場合は無視されます。
(エラーにはなりません。)
var set = new Set();
set.add("apple");
set.add("banana");
console.log(set.size); // 2
// すでに存在する値を追加
set.add("banana");
console.log(set.size); // 2
####値の削除
delete(value)
で、その値をSetオブジェクトから削除します。
var set = new Set(["value1", "value2", "value3"]);
console.log(set.size); // 3
set.delete("value2");
console.log(set.size); // 2
####全ての値を削除
clear()
で、Setオブジェクトのすべての値を削除します。
var set = new Set(["value1", "value2", "value3"]);
console.log(set.size); // 3
set.clear();
console.log(set.size); // 0
####値が存在するかどうかの確認
has(value)
で、その値がSetオブジェクトに存在するかどうかを確認できます。
var set = new Set(["value1", "value2", "value3"]);
console.log(set.has("value1")); // true
console.log(set.has("value5")); // false
####反復処理
#####for...of
Setへの追加順に要素を取り出せます。
var set = new Set();
set.add("apple");
set.add("banana");
set.add("melon");
for (var value of set) {
console.log(value);
}
// apple
// banana
// melon