Set【一意コレクション】オブジェクトの基本操作
・new Set【コンストラクタ】
・size【要素数】プロパティ
・add【要素追加・更新】メソッド
・clear【全要素削除】メソッド
・delete【要素削除】メソッド
・has【要素有無】メソッド

メモ

構文

操作構文戻り値例外備考
要素数size 要素数
コンストラクタnew Set ( [ iterable ] ) Set【一意コレクション】オブジェクトTypeError 例外
要素追加・更新add ( value ) Set【一意コレクション】オブジェクト既存要素:更新
全要素削除clear ( )undefined
要素削除delete ( value ) true:要素削除
false:要素なし
要素有無has ( value ) true:要素あり
false:要素なし

  • iterable:値から成るイテレータオブジェクト 及び それに準ずるもの (値の配列等)
  • value:要素の値

TypeError 例外new Set【コンストラクタ】new なし (関数として呼び出し)
入力のiterable が不正

var emptySet = new Set();
console.log(emptySet.size);     // 出力:0
console.log(emptySet);          // 出力:Set {}

var obj3 = new Object("obj3");
var array = [1, "string2", obj3];
var arraySet = new Set(array);
console.log(arraySet.size);     // 出力:3
console.log(arraySet);          // 出力:Set {1, "string2", String...}

var setSet = new Set(arraySet);
console.log(setSet.size);       // 出力:3
console.log(setSet);            // 出力:Set {1, "string2", String...}

var setNG1 = Set();        // TypeError 例外:new なし (関数として呼び出し)
var setNG2 = new Set(123); // TypeError 例外:入力のイテレータオブジェクトが不正
var set1 = new Set();
set1.add(1);
set1.add("string2");
set1.add("string2");               // 更新
var obj3 = new Object("obj3");
set1.add(obj3);
console.log(set1.has(1));          // 出力:true
console.log(set1.has("string2"));  // 出力:true
console.log(set1.has(obj3));       // 出力:true
console.log(set1.has("non"));      // 出力:false
console.log(set1.size);            // 出力:3
set1.delete("string2");
obj3 = new Object("obj3");                // 別のオブジェクト作成
console.log(set1.has(1));          // 出力:true
console.log(set1.has("string2"));  // 出力:false
console.log(set1.has(obj3));       // 出力:false (別のオブジェクトの為)
console.log(set1.size);            // 出力:2 (元のobj3が存在)
set1.clear();
console.log(set1.size);            // 出力:0

関連