セット(Set)

[up] [prev] [next]

目次

セット

set = new Set([iterable])
set.add(value)

ES6(ES2015) でサポートされたオブジェクトで、値のリストを保持します。Chrome 38, Firefox 13, Internet Explorer 11, Opera 25, Safari 7.1 以降で使用できます。

JavaScript
var set = new Set();
set.add("Tanaka");
set.add("Suzuki");
console.log(set);     // "Tanaka", "Suzuki"

同じ値を追加してもリストは増えません。

JavaScript
set.add("Tanaka");
set.add("Suzuki");
set.add("Suzuki");
console.log(set);     // "Tanaka", "Suzuki"

コンストラクタには値の配列を指定できます。Internet Explorer と Safari ではサポートされていません。

JavaScript
var set = new Set(["Tanaka", "Suzuki"]);
set.size

リストの個数を返します。

JavaScript
var set = new Set();
set.add("Tanaka");
set.add("Suzuki");
set.size;                  // => 2
set.has(value)

has() を用いて、値が含まれているか確認することができます。

JavaScript
var set = new Set()
set.add("Tanaka");
set.add("Suzuki");
if (set.has("Tanaka")) {
  console.log("Exist!");
}
set.delete(value)
set.clear()

delete() は指定した値を、clear() はすべての値をクリアします。

JavaScript
var set = new Set();
set.add("Tanaka");
set.add("Suzuki");
set.delete("Tanaka");
set.clear();
set.keys()
set.values()
set.entries()

for ... of 文でキー・バリューのリストを扱うことができます。Internet Explorer と Opera ではサポートされていません。

JavaScript
for (var value of set) {
  console.log(value);
}

keys(), value(), entries() も使用できますが、key にも value にも同じ値が格納されます。

JavaScript
for (var key of set.keys()) {
  console.log(key);
}
for (var value of set.values()) {
  console.log(value);
}
for (var [key, value] of set.entries()) {
  console.log(key, "=", value);
}
set.forEach(function[, this)

forEach 文でキー・バリューのリストを扱うことができます。こちらは、Internet Explorer でもサポートされていますが、Opera でサポートされていません。key も指定できますが、key と value に同じ値が格納されます。

JavaScript
set.forEach(function(value) {
  console.log(value);
})
set.forEach(function(value, key) {
  console.log(key, ":", value);
})
set.forEach(function(value, key, set) {
  console.log(key, value, set);
});
set.forEach(function(value, key) {
  console.log(key, value, this);
}, set);   // setをthisとして引き渡す

弱参照セット(WeakSet)

WeakSet は WeakMap のセット版です。詳細は WeakMap を参照してください。


[up] [prev] [next]
Copyright (C) 2018-2019 杜甫々
初版:2018年1月21日、最終更新:2019年12月31日
http://www.tohoho-web.com/js/set.htm