JavaScriptの学習・参考リファレンス/ドキュメント

JavaScript、ECMAScriptの学習と参考メモ 入門~初心者~中級者~上級者を目指して

Set 一意のコレクション

Setは一意の重複しない要素を管理するコレクションの型です。

基本的な使い方

宣言の方法

const set = new Set([1, 2, 'a']);
console.log(set); // Set [ 1, 2, 'a' ]

/*
const set = new Set();

set.add(1);
set.add(2);
set.add('a');
console.log(set); // Set [ 1, 2, 'a' ]
*/

コレクションのサイズ

const set = new Set([1, 2, 'a']);
console.log(set.size); // 3

要素の操作

要素の追加・削除・クリア・存在チェック

const set = new Set();

// 要素の追加
set.add(1); // Set [1]
set.add(2); // Set [1, 2]
set.add('a'); // Set [1, 2, 'a']
set.add('a'); // Set [1, 2, 'a'] 同じ値をaddしても要素は増えない

// 要素の存在チェックと削除
console.log(set.has(2)); //true
set.delete(2);
console.log(set.has(2)); //false
console.log(set); // Set [1, 'a']

// 要素のクリア
set.clear();
console.log(set); // Set []

要素の列挙・繰り返し

Setの繰り返し

const set = new Set([1, 2, 'a']);

set.forEach((k, v, s) =>{
  console.log(`set[${k}] = ${v} , ${s}`);
  // "set[1] = 1 , [object Set]"
  // "set[2] = 2 , [object Set]"
  // "set[a] = a , [object Set]"
});

for (let v of [...set]) {
  console.log(v); // 1, 2, 'a'
}

for (let [k, v] of set.entries()) {
  console.log(`set[${k}] = ${v}`);
  // "set[1] = 1"
  // "set[2] = 2"
  // "set[a] = a"
}

for (let k of set.keys()) {
  console.log(k); // 1, 2, 'a'
}

for (let v of set.values()) {
  console.log(v); // 1, 2, 'a'
}

配列とSetの変換

const array = [1, 2, 'a'];
const set = new Set(array);

// setから配列
let array2 = Array.from(set); 
console.log(array2); // [1, 2, "a"]

// スプレッド構文
let array3 = [...set];
console.log(array3); // [1, 2, "a"]
作成日 : 2020年06月16日