JavaScriptでセット(Set)を作成する2つの方法を解説
セット(Set)とは?
セットとは、特定の値を重複なく格納できる抽象データ型です。要素には順序の概念がなく、数学における「有限集合」の概念をコンピュータ上で実装したものといえます。
他のコレクション型と異なる点として、セットでは特定の要素を取り出すというより、ある値がセットに含まれているかどうか(メンバーシップの判定)を行う用途で使われるのが一般的です。
JavaScriptでセットを作成する主な方法は、以下の2つです。
1. 空のSetコンストラクタを使う方法
new Set()で空のセットを作成し、add()メソッドで要素を追加していきます。重複する値は自動的に無視される点に注目してください。
let mySet = new Set(); mySet.add(1); mySet.add(1); console.log(mySet)
出力結果
Set { 1 }
同じ値「1」を2回追加しても、セットには1度しか登録されません。これにより、ユニークな値だけを保持するデータ構造が簡単に実現できます。
2. イテラブル(反復可能オブジェクト)をコンストラクタに渡す方法
Setコンストラクタは、配列やセットなどの反復可能オブジェクト(iterable)を引数として受け取ることができます。渡された値をもとに、新しいセットが構築されます。初期化時にまとめて値を設定できるため、こちらの方法もよく使われます。
let mySet = new Set([1, 2, 1, 3, "a"]); mySet.add(1); mySet.add(1); console.log(mySet)
出力結果
Set { 1, 2, 3, 'a' }
配列内に重複していた「1」は自動的に1つにまとめられます。また、数値の 1 と文字列の 'a' のように、型が異なる値はそれぞれ別の要素として扱われる点にも注意しましょう。
-
JavaScriptにおける配列とSetの違いとは?重複値の扱いと要素アクセスをわかりやすく解説
JavaScriptのSet(セット)オブジェクトは、ES2015(ES6)で新たに導入されたデータ型です。従来から広く使われている配列(Array)と比べると、いくつか重要な違いがあります。 配列とSetの主な違い 重複した値の扱い: 配列は同じ値をいくつでも格納できますが、Setでは同一の値は1つしか保持されません。重複した値は自動的に除外されるのが大きな特徴です。 要素へのアクセス方法: 配列ではインデックス(例:arr[0])を使って任意の位置の要素へ直接アクセスできます。一方、Setにはインデックスの概念がなく、要素は挿入された順序どおりに先頭から順番に辿ることしかできません。
-
JavaScriptで配列を空にする4つの方法【サンプルコード付きで解説】
JavaScriptで配列を空にする方法は、主に4つあります。それぞれ動作の仕組みや特徴が異なるため、目的に応じて適切な方法を選ぶことが大切です。配列を空にする4つの方法新しい空の配列を代入する:配列変数に、新しく作成した空の配列を代入します。最もシンプルな方法ですが、元の配列を参照している他の変数が残る点には注意が必要です。lengthプロパティを使う:配列のlengthプロパティに0を設定するだけで、すべての要素を削除できます。高速で、元の配列への参照も維持されるため、実務で最もよく使われる方法のひとつです。popメソッドを使う:配列の要素数が0になるまで、popメソッドで末尾の要素を繰り