【初心者向け】JavaScriptでセット(Set)を作成する方法を解説
この記事では、JavaScriptでセット(集合)構造を実装する方法について解説します。ここでは、ES6で標準提供されているSetクラスと混同しないよう、独自のMySetクラスを作成していきます。
MySetクラスでは、セットに追加したすべての値を管理するためのコンテナオブジェクトを用意します。また、セットの中身を確認できるように、内容を出力するdisplayメソッドも実装しましょう。
基本的なMySetクラスの実装例
class MySet {
constructor() {
this.container = {};
}
display() {
console.log(this.container);
}
}
ES6のSetクラスを使った作成方法
ES6以降では、標準のSetクラスを使用することで、より簡単にセットを作成できます。引数なしで空のセットを作ることも、初期値を配列として渡すことも可能です。
const set1 = new Set(); const set2 = new Set([1, 2, 5, 6]);
要素が存在するかどうかの判定(メンバーシップチェック)
セット内に特定の値が存在するかどうかを確認するには、hasメソッドを実装します。独自のMySetクラスでは、コンテナオブジェクトに対してObject.hasOwnPropertyメソッドを使うことで、値の存在を効率的にチェックできます。
has(val) {
return this.container.hasOwnProperty(val);
}
ES6のSetクラスでのhasメソッドの使い方
ES6の標準Setクラスでは、hasメソッドが最初から用意されているため、そのまま利用できます。以下は具体的な使用例です。
const testSet = new Set([1, 2, 5, 6]); console.log(testSet.has(5)); console.log(testSet.has(20)); console.log(testSet.has(1));
出力結果
上記のコードを実行すると、次のような結果が出力されます。
true false true
このように、値5と1はセット内に存在するためtrueが返され、存在しない20に対してはfalseが返されます。セットのメンバーシップチェックは非常に高速なため、重複のないデータ管理や高速な検索処理が必要な場面で活用できます。
-
JavaScriptにおける配列とSetの違いとは?重複値の扱いと要素アクセスをわかりやすく解説
JavaScriptのSet(セット)オブジェクトは、ES2015(ES6)で新たに導入されたデータ型です。従来から広く使われている配列(Array)と比べると、いくつか重要な違いがあります。 配列とSetの主な違い 重複した値の扱い: 配列は同じ値をいくつでも格納できますが、Setでは同一の値は1つしか保持されません。重複した値は自動的に除外されるのが大きな特徴です。 要素へのアクセス方法: 配列ではインデックス(例:arr[0])を使って任意の位置の要素へ直接アクセスできます。一方、Setにはインデックスの概念がなく、要素は挿入された順序どおりに先頭から順番に辿ることしかできません。
-
JavaScriptのimportで波括弧「{}」を使う理由とは?名前付きエクスポートの基本をわかりやすく解説
JavaScript(ESモジュール)でモジュールを読み込む際、import 文に波括弧 { } を付けるかどうか迷ったことはありませんか?実はこの波括弧は、名前付きエクスポート(named export)を読み込むために必要な記法です。本記事では、実際のコード例を使いながら、{ } の役割と使い方を詳しく解説します。 importで { } を使う場面とは JavaScriptのESモジュールでは、エクスポート方法によって読み込み側の書き方が変わります。 名前付きエクスポート:export { 関数名 } のようにエクスポートされたものを読み込む場合は、import { 名前 } fro