JavaScriptでセット(Set)に要素を追加する方法
addメソッドは、指定した値がすでにセット内に存在するかどうかを確認し、存在しない場合にのみその値をセットへ追加します。これにより、セットが「重複しない要素の集まり」という性質を保つことができます。実装は以下のようになります。
例
add(val) {
if (!this.has(val)) {
this.container[val] = val; return true;
}
return false;
}
このメソッドの動作は、次のコードで確認できます。
例
const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.add(2); testSet.display(); console.log(testSet.has(5)); console.log(testSet.has(20)); console.log(testSet.has(1));
出力
このコードを実行すると、次のような出力が得られます。
{ '1': 1, '2': 2, '5': 5 }
True
False
True
注目すべき点は、値の2を2回追加しようとしても、実際には1回しか追加されないことです。すでに存在する値を再度追加しようとした場合はfalseが返されます。これは、追加が行われなかったときに返される戻り値によるものです。この仕組みによって、セットには常に一意な値だけが格納されることが保証されます。
ES6では、標準で用意されているSetオブジェクトのaddメソッドを次のように使用できます。
例
const testSet = new MySet(); testSet.add(1); testSet.add(2); testSet.add(5); testSet.add(2); console.log(testSet.has(5)); console.log(testSet.has(20)); console.log(testSet.has(1));
出力
このコードを実行すると、次のような出力が得られます。
True False True
ES6のネイティブなSetも同様に、同じ値を複数回追加しても最初の1回のみが保持され、addメソッドはセット自身を返すためメソッドチェーンにも対応しています。重複を自動的に排除したい場面では、セットは非常に便利なデータ構造です。
-
JavaScriptでリンクリストに要素を挿入する方法をわかりやすく解説
はじめに リンクリスト(連結リスト)では、指定した位置にデータを挿入するための関数 insert(data, position) を用意する必要があります。本記事では、その実装手順とサンプルコードを初心者にもわかるように解説します。 挿入処理の基本手順 insert(data, position) の内部では、以下のステップを実行します。 新しいノード(Node)を作成します。 リストが空かどうかを確認します。空の場合は、作成したノードをheadに設定して処理を終了します。 空でない場合は、currNode を使って挿入したい位置までリストをたどります。リンクリストの走査は「currNod
-
JavaScriptにおける配列とSetの違いとは?重複値の扱いと要素アクセスをわかりやすく解説
JavaScriptのSet(セット)オブジェクトは、ES2015(ES6)で新たに導入されたデータ型です。従来から広く使われている配列(Array)と比べると、いくつか重要な違いがあります。 配列とSetの主な違い 重複した値の扱い: 配列は同じ値をいくつでも格納できますが、Setでは同一の値は1つしか保持されません。重複した値は自動的に除外されるのが大きな特徴です。 要素へのアクセス方法: 配列ではインデックス(例:arr[0])を使って任意の位置の要素へ直接アクセスできます。一方、Setにはインデックスの概念がなく、要素は挿入された順序どおりに先頭から順番に辿ることしかできません。