83
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScript Setオブジェクト

Posted at

##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
83
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
83
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?