JavaScript Setメソッド

JavaScriptのSetメソッドについて学びます。

new Set()メソッド

new Set()コンストラクタに配列を渡します:


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

add()メソッド

値を追加する:


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

同じ要素を追加しても、最初の1つしか保存されません:


letters.add("a");
letters.add("b");
letters.add("c");
letters.add("c"); // この行は無視されます

Set要素のリスト化

for..ofループを使ってすべてのSet要素(値)をリストアップできます:


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

// すべての要素をリストアップする
let text = "";
for (const x of letters) {
  text += x;
}

has()メソッド

指定した値がSet内に存在する場合、trueを返します:


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

// Setに "d" が含まれているか?
const answer = letters.has("d");

forEach()メソッド

forEach()メソッドは各Set要素に対して関数を呼び出します:


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

// すべてのエントリーをリストアップする
let text = "";
letters.forEach(function(value) {
  text += value;
});

values()メソッド

values()メソッドはSet内の値を持つIteratorオブジェクトを返します:


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

// すべての値を取得する
const myIterator = letters.values();

// すべての値をリストアップする
let text = "";
for (const entry of myIterator) {
  text += entry;
}

keys()メソッド

keys()メソッドはSet内の値を持つIteratorオブジェクトを返します:

注意: Setにはキーがないため、keys()はvalues()と同じ結果を返します。これにより、SetsはMapsと互換性があります。


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

// Iteratorを作成する
const myIterator = letters.keys();

// すべての要素をリストアップする
let text = "";
for (const x of myIterator) {
  text += x;
}

entries()メソッド

entries()メソッドはSetから[value, value]のペアを持つIteratorを返します:

注意: entries()メソッドはオブジェクトから[key, value]のペアを返すことを意図していますが、Setにはキーがないため[value, value]のペアを返します。これにより、SetsはMapsと互換性があります。


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

// すべてのエントリーを取得する
const myIterator = letters.entries();

// すべてのエントリーをリストアップする
let text = "";
for (const entry of myIterator) {
  text += entry;
}