JavaScript 速習チュートリアル

JavaScript セット

1. JavaScript Set とは

JavaScript の Set は、ユニークな(重複のない)値のコレクションです。

  • Set 内では、各値は一度しか存在できません。
  • 値の型は、プリミティブ値(基本型)からオブジェクト(参照型)まで、どのような型でも格納可能です。

2. Set の作成方法

JavaScript で Set を作成するには、以下の方法があります。

  • new Set() に配列(Array)を渡す
  • 空の Set を作成し、add() を使って値を追加する

2.1 new Set() メソッド

new Set() コンストラクタに配列を渡して初期化する例です。

// Set(セット)を作成する
const letters = new Set(["a", "b", "c"]);

空の Set を作成してから、値を追加することもできます。

// Set(セット)を作成する
const letters = new Set();

// Set に値を追加する
letters.add("a");
letters.add("b");
letters.add("c");

変数(Variable)を Set に追加することも可能です。

// Set(セット)を作成する
const letters = new Set();

// 変数を作成する
const a = "a";
const b = "b";
const c = "c";

// 変数を Set に追加する
letters.add(a);
letters.add(b);
letters.add(c);

2.2 add() メソッド

add() メソッドを使用して要素を追加します。

letters.add("d");
letters.add("e");

もし、すでに存在する値と同じ要素を追加しようとした場合、最初の値のみが保存され、重複して保存されることはありません。

letters.add("a");
letters.add("b");
letters.add("c");
letters.add("c"); // 重複:無視される
letters.add("c"); // 重複:無視される
letters.add("c"); // 重複:無視される
letters.add("c"); // 重複:無視される
letters.add("c"); // 重複:無視される

3. 要素の列挙(Listing the Elements)

for..of ループを使用することで、Set のすべての要素(値)をリスト化(反復処理)できます。

// Set(セット)を作成する
const letters = new Set(["a", "b", "c"]);

// すべての要素を列挙する
let text = "";
for (const x of letters) {
  text += x;
}

4. オブジェクトとしての Set

JavaScript において、Set はオブジェクトの一種です。

typeof 演算子は "object" を返します。

typeof letters;      // "object" を返します

instanceof Set は true を返します。

letters instanceof Set;  // true を返します

5. ブラウザのサポート状況

SetES6 (ECMAScript 2015) で導入された機能です。
ES6 は、2017年6月以降、すべてのモダンブラウザで完全にサポートされています。

ChromeEdgeFirefoxSafariOpera
51 (2016年5月)15 (2017年4月)54 (2017年6月)10 (2016年9月)38 (2016年6月)