Menu
CoddyTech

المجموعات الجزئية والمجموعات الشاملة

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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
challenge icon

التحدي

سهل

أنشئ دالة باسم analyzeSetRelations تأخذ مصفوفتين كمعاملين: arr1 وarr2. ينبغي للدالة تحويل المصفوفتين إلى مجموعتين وإرجاع كائن بالخصائص التالية:

  • isSubset: قيمة منطقية تشير إلى ما إذا كانت set1 مجموعة جزئية من set2
  • isSuperset: قيمة منطقية تشير إلى ما إذا كانت set1 مجموعة فائقة لـ set2
  • isEqual: قيمة منطقية تشير إلى ما إذا كان لدى 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
    };
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت