المجموعات الجزئية والمجموعات الفائقة
جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 40 من 65.
تكون المجموعة A مجموعةً جزئيةً من المجموعة B إذا كان كل عنصر من A عنصرًا أيضًا في B. وبالعكس، تكون B مجموعةً فائقةً لـ A إذا كانت تحتوي على جميع عناصر A.
تكون مجموعتان متساويتين إذا كانتا تحتويان على العناصر نفسها تمامًا. على سبيل المثال، لنُنشئ بعض الاختبارات:
const setA = new Set([1, 2, 3]);
const setB = new Set([1, 2, 3, 4, 5]);
const setC = new Set([1, 2, 3]);
const setD = new Set([6, 7, 8]);دالة للتحقق مما إذا كانت setA مجموعة جزئية من setB:
function isSubset(setA, setB) {
return [...setA].every(element => setB.has(element));
}دالة للتحقق مما إذا كانت setA مجموعة شاملة لـ setB:
function isSuperset(setA, setB) {
return isSubset(setB, setA);
}دالة للتحقق مما إذا كانت مجموعتان متساويتين:
function areEqual(setA, setB) {
return setA.size === setB.size && isSubset(setA, setB);
}اختبار علاقة المجموعة الجزئية:
// هل A مجموعة جزئية من B؟
isSubset(setA, setB) // true
// هل B مجموعة جزئية من A؟
isSubset(setB, setA) // false
// هل D مجموعة جزئية من B؟
isSubset(setD, setB) // falseاختبار علاقة المجموعة الشاملة:
// هل B مجموعة شاملة لـ A؟
isSuperset(setB, setA) // true
// هل A مجموعة شاملة لـ B؟
isSuperset(setA, setB) // falseاختبار التساوي:
// A يساوي C؟
areEqual(setA, setC) // true
// A يساوي B؟
areEqual(setA, setB) // false
// A يساوي D؟
areEqual(setA, setD) // falseالتحدي
سهلأنشئ function تُسمى analyzeSetRelations وتأخذ مصفوفتين كمعاملين: arr1 وarr2. يجب أن تُحوّل function المصفوفتين إلى مجموعتين وتُعيد كائنًا بالخصائص التالية:
isSubset: قيمة منطقية تشير إلى ما إذا كانتset1مجموعة جزئية منset2isSuperset: قيمة منطقية تشير إلى ما إذا كانتset1مجموعة شاملة لـset2isEqual: قيمة منطقية تشير إلى ما إذا كانتset1وset2تحتويان على العناصر نفسها تمامًا
جرّب بنفسك
function analyzeSetRelations(arr1, arr2) {
let set1 = new Set(arr1);
let set2 = new Set(arr2);
// استخدم .every() و .has() للتحقق من علاقات المجموعات
let isSubset = false; // TODO: تحقق مما إذا كان كل عنصر من set1 موجودًا في set2
let isSuperset = false; // TODO: تحقق مما إذا كان كل عنصر من set2 موجودًا في set1
let isEqual = false; // TODO: تحقق مما إذا كان لكلا المجموعتين نفس الحجم و isSubset يساوي true
return {
isSubset: isSubset,
isSuperset: isSuperset,
isEqual: isEqual
};
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON6المجموعات - الجزء الثاني
الرياضيات - اتحاد المجموعاتالرياضيات - تقاطع المجموعاتالرياضيات - الفرق بين المجموعاتالرياضيات - الفرق المتناظرالمجموعات الجزئية والمجموعات الفائقةمراجعة - مجموعات الأصدقاءتدرّب بنفسك: مترجم JavaScript عبر الإنترنت