Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المجموعات الجزئية والمجموعات الفائقة

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

التحدي

سهل

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

  • 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 عبر الإنترنت