منطق مجموعه (Set Logic)
در «منطق مجموعه (Set Logic)» با عمل های مهم روی Set آشنا می شوی. هر عمل مثل یک بازی گروهی است. اعضا می آیند یا می روند. سپس خروجی یک Set تازه می شود.
union(): اجتماع مجموعه ها
«اجتماع (Union)» یعنی هر چیزی که در هرکدام بود، داخل خروجی بیاید.
مثال: اجتماع دو Set
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
const C = A.union(B);
intersection(): اشتراک مجموعه ها
«اشتراک (Intersection)» یعنی فقط چیزهایی که هر دو دارند، نگه داریم.
مثال: اشتراک دو Set
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
const C = A.intersection(B);
difference(): تفاضل مجموعه ها
«تفاضل (Difference)» یعنی چیزهای A که در B نیستند را نگه داریم.
مثال: تفاضل A از B
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
const C = A.difference(B);
symmetricDifference(): تفاضل متقارن
«تفاضل متقارن (Symmetric Difference)» یعنی فقط متفاوت ها بمانند. مشترک ها حذف شوند.
مثال: تفاضل متقارن
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
const C = A.symmetricDifference(B);
isSubsetOf(): زیرمجموعه بودن
«زیرمجموعه (Subset)» یعنی همه عناصر A داخل B هم باشند.
مثال: آیا A زیرمجموعه B است؟
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
let answer = A.isSubsetOf(B);
isSupersetOf(): ابرمجموعه بودن
«ابرمجموعه (Superset)» یعنی B هرچه دارد، در A هم باشد.
مثال: آیا A ابرمجموعه B است؟
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
let answer = A.isSupersetOf(B);
isDisjointFrom(): بی اشتراک بودن
«بی اشتراک (Disjoint)» یعنی هیچ عضو مشترکی بین دو Set نباشد.
مثال: بررسی بی اشتراک بودن
const A = new Set(['a', 'b', 'c']);
const B = new Set(['b', 'c', 'd']);
let answer = A.isDisjointFrom(B);
نکته: این قابلیت ها در ES2025 معرفی شده اند. مرورگرهای مدرن از 2025 پشتیبانی می کنند.
تمرین سه مرحله ای
- دو Set از دانش آموزان دو کلاس بساز.
- اشتراک و تفاضل متقارن را محاسبه کن.
- زیرمجموعه و بی اشتراک بودن را بررسی کن.
جمع بندی سریع
- union: همه اعضای دو Set.
- intersection: فقط مشترک ها.
- difference: فقطِ A، بدونِ B.
- symmetricDifference: فقط متفاوت ها.
- subset/superset/disjoint: رابطه بین دو Set.
ابتدا متدهای مجموعه را مرور کن. سپس اگر تازه کاری، صفحه مجموعه ها کمک خوبی است.