الرياضيات - الفرق بين المجموعات
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 38 من 65.
الفرق بين مجموعتين A و B (غالباً ما يُكتب A - B) هو مجموعة جديدة تحتوي على العناصر الموجودة في A ولكنها ليست في B. هذه العملية ليست إبدالية، مما يعني أن A - B ليس بالضرورة هو نفسه B - A.
على سبيل المثال:
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: العناصر الموجودة في A وليست في B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: العناصر الموجودة في B وليست في A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }التحدي
سهلأنشئ دالة تسمى setDifference تأخذ مصفوفتين كمعاملات: arr1 و arr2. يجب أن تقوم الدالة بتحويل المصفوفات إلى مجموعات (sets). أنشئ مجموعة (Set) جديدة تحتوي على العناصر الموجودة في set1 ولكنها ليست موجودة في set2، ثم حولها إلى مصفوفة وقم بإرجاعها.
ورقة مرجعية
يؤدي الفرق بين مجموعتين A و B (A - B) إلى إنشاء مجموعة جديدة تحتوي على العناصر الموجودة في A ولكنها ليست في B. هذه العملية ليست تبديلية (A - B ≠ B - A).
لإيجاد الفرق بين المجموعات، قم بتحويل المصفوفات إلى مجموعات واستخدم عمليات المجموعات للعثور على العناصر الموجودة في المجموعة الأولى ولكنها ليست في الثانية. على سبيل المثال:
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([3, 4, 5, 6, 7]);
// A - B: العناصر الموجودة في A وليست في B
const differenceAB = new Set([...setA].filter(x => !setB.has(x)));
console.log('A - B:', differenceAB); // Set { 1, 2 }
// B - A: العناصر الموجودة في B وليست في A
const differenceBA = new Set([...setB].filter(x => !setA.has(x)));
console.log('B - A:', differenceBA); // Set { 6, 7 }جرّب بنفسك
function setDifference(arr1, arr2) {
const set1 = new Set(arr1)
const set2 = new Set(arr2)
const differenceSet = new Set();
// اكتب كودك هنا
return Array.from(differenceSet);
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSON6المجموعات - الجزء الثاني
الرياضيات - اتحاد المجموعاتالرياضيات - تقاطع المجموعاتالرياضيات - الفرق بين المجموعاتالرياضيات - الفرق المتناظرالمجموعات الجزئية والمجموعات الفائقةمراجعة - مجموعات الأصدقاء