المجموعات الجزئية والمجموعات الشاملة
جزء من قسم المنطق وتدفق التنفيذ في رحلة 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التحدي
سهلأنشئ دالة باسم analyzeSetRelations تأخذ مصفوفتين كمعاملين: arr1 وarr2. ينبغي للدالة تحويل المصفوفتين إلى مجموعتين وإرجاع كائن بالخصائص التالية:
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السلاسل النصية بالتفصيل
أساسيات السلاسل النصيةالتكرار على السلاسل النصيةالقوالب النصيةدوال السلاسل النصيةمراجعة - ناسج السلاسل النصية2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة: المصفوفات ثنائية الأبعادجمع المصفوفات وطرحهاالمصفوفات متعرجة الأبعادالمصفوفات ثلاثية الأبعاد وما بعدهاأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة: كل ما يتعلق بالمصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار على عناصر المجموعةإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم والتحقق من الفراغالنسخ والمسحمراجعة - أساسيات المجموعات8موضوعات شيقة حول المصفوفات
تفكيك المصفوفاتصياغة الانتشار في المصفوفاتالمصفوفات المتناثرةمراجعة - ورشة عمل حول المصفوفات3JSON الجزء 1
ما هو JSON؟التحقق من وجود المفتاحطرق الكائنعامل الانتشار الجزء 1عامل الانتشار الجزء 2حذف المفاتيحمراجعة - معالجة المفاتيح في JSON6المجموعات - الجزء الثاني
رياضيات - اتحاد المجموعاترياضيات - تقاطع المجموعاترياضيات - الفرق بين المجموعاترياضيات - الفرق المتماثلالمجموعات الجزئية والمجموعات الشاملةمراجعة - مجموعة الأصدقاءتدرّب بنفسك: مترجم JavaScript عبر الإنترنت