広告スペース(バナー)
🟨JavaScript レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 62 / 69

Setで集合演算(和集合・積集合・差集合)をしよう

このレッスンでは、SetとfilterやspreadOperatorを組み合わせた集合演算を学び、複数のグループを比較するデータ処理ができるようになることを目標にします。「JavaScript 集合演算 和集合」で調べている方向けの内容です。

Setとスプレッド構文・filter()を組み合わせると、「和集合」「積集合」「差集合」を計算できます。JavaScriptには専用の集合演算メソッドはありませんが、この組み合わせが定番のやり方です。和集合はどちらかに含まれる要素全部、積集合は両方に共通する要素、差集合は片方にしかない要素を指します。

サンプルコードでは、new Set([...a, ...b])で和集合を、[...a].filter((x) => b.has(x))で積集合を、[...a].filter((x) => !b.has(x))で差集合を計算しています。Setを配列に展開してから.filter()で「もう一方のSetに含まれるかどうか」を判定するのが、この実装の核心部分です。

初心者がよくつまずくのが、それぞれの集合演算がどんな意味を持つかの理解です。図(ベン図)を描いて、和集合・積集合・差集合がそれぞれどの範囲を指すのかをイメージしながらコードと照らし合わせると理解しやすくなります。SQLのJOIN操作とも似た考え方なので、データベースを学ぶ際にもこの知識が活きます。

「両方のグループに共通するユーザー」や「片方にしかいない商品」を見つけたいときなど、実務のデータ処理でも役立つ考え方です。データ分析やユーザーのグループ分けなど、実務でも活用場面の多い考え方です。

JavaScript
OUTPUT / 実行結果

💡 console.log() の内容が実行結果に表示されます。

🎯
ここまでできればゴール達成!
2つのグループの共通点や違いを調べる処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)