【JS応用|初心者向け】JavaScriptで重複なしのデータ管理!Setオブジェクトの基本と活用術

1. 導入:なぜSetを使うのか?

プログラミングをしていると、「配列の中に同じ値がいくつも入ってしまう」という状況によく遭遇します。例えば、ユーザーが選択したタグのリストから重複を削除したい場合、配列を使うと毎回「値がすでに存在するか」をチェックする処理が必要になり、コードが複雑になりがちです。
JavaScriptの「Set」オブジェクトを使えば、これらの重複チェックを自動で行い、効率的にデータを管理することができます。初心者の方がコードをスッキリと読みやすくするために、ぜひ習得しておきたい技術です。

2. 基礎知識:Setとは何か?

Setは、一言で言えば「値の重複を許さないコレクション」です。
配列(Array)との最大の違いは、同じ値を二重に保持できないという点です。もし同じ値を複数追加しようとしても、Setはそれを無視します。また、Setは順番を保持する性質も持っているため、データのリストを管理するのに非常に適しています。

3. 実装/解決策:Setの基本操作

Setを使うには、`new Set()`を使ってインスタンスを作成します。主な操作は以下の4つです。
・追加(add):値を追加する
・削除(delete):特定の値を削除する
・存在確認(has):値が含まれているか確認する
・サイズ確認(size):要素の数を確認する

4. サンプルプログラム

以下のコードをコピーして、ブラウザのコンソールやNode.js環境で試してみてください。

// 1. Setの作成と値の追加
const myTags = new Set();
myTags.add(‘JavaScript’);
myTags.add(‘React’);
myTags.add(‘JavaScript’); // すでに存在するので無視されます!

// 2. 要素数の確認
console.log(‘現在のタグ数:’, myTags.size); // 結果は 2

// 3. 値の存在確認
if (myTags.has(‘React’)) {
console.log(‘Reactが含まれています’);
}

// 4. 配列から重複を削除するテクニック(実務で多用します)
const rawList = [1, 2, 2, 3, 4, 4, 5];
const uniqueList = […new Set(rawList)]; // スプレッド構文で配列に戻す
console.log(‘重複なしのリスト:’, uniqueList); // [1, 2, 3, 4, 5]

5. 応用・注意点:現場での活用ポイント

実務で最も役立つのは、最後にご紹介した「配列の重複削除」です。`[…new Set(配列)]`と書くだけで、複雑なループ処理を書かずに一瞬でユニークな配列を作ることができます。

注意点として、Setは「オブジェクト(連想配列やクラスのインスタンスなど)」を格納する場合、参照先が同じかどうかで判定されます。見た目が同じ空のオブジェクトを2つ追加すると、それぞれ別のものとして扱われてしまうため、「データの値そのもの」を比較したい場合には、あらかじめ値を文字列(JSON.stringifyなど)に変換するなどの工夫が必要になることを覚えておきましょう。

タイトルとURLをコピーしました