تسلسل دوال المصفوفات
جزء من قسم Logic & Flow في رحلة JavaScript على Coddy — الدرس 55 من 65.
يتيح لك تسلسل المصفوفات (Chaining array) إجراء عمليات متعددة على مصفوفة في جملة برمجية واحدة. يمكن لهذا الأسلوب أن يجعل الكود الخاص بك أكثر إيجازاً وقابلية للقراءة.
إليك مثال على ربط توابع المصفوفة (array methods):
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((sum, num) => sum + num, 0);
console.log(result); // 60في هذا المثال، نبدأ بمصفوفة من الأرقام، ونقوم بتصفية الأرقام الفردية، ومضاعفة كل رقم متبقٍ، ثم نجمع النتائج.
ترتيب التسلسل (chaining) مهم. كل دالة (method) في السلسلة تعمل على نتيجة الدالة السابقة.
التحدي
سهلأنشئ دالة تسمى processFruits تأخذ مصفوفة من كائنات الفاكهة. كل كائن فاكهة يحتوي على الخصائص name (سلسلة نصية) و quantity (رقم).
يجب أن تستخدم الدالة أساليب المصفوفة المتسلسلة (chained array methods) للقيام بما يلي:
- تصفية (Filter) الفواكه التي تكون كميتها 0
- تحويل اسم كل فاكهة إلى أحرف كبيرة (uppercase)
- إنشاء سلسلة نصية تسرد جميع الفواكه مع كمياتها مثل "APPLE: 5, BANANA: 3"
تذكير سريع:
يمكنك استخدام دالة .join(", ") لتحويل مصفوفة من السلاسل النصية إلى سلسلة نصية واحدة.
من الممكن ربط حتى دالة .join() بشكل متسلسل:
arr.filter(...)
.map(...)
.join(...)ورقة مرجعية
يسمح لك تسلسل دوال المصفوفات (Chaining array methods) بإجراء عمليات متعددة على مصفوفة في جملة برمجية واحدة، مما يجعل الكود أكثر إيجازاً وسهولة في القراءة.
تعمل كل دالة في السلسلة على النتيجة الناتجة عن الدالة السابقة:
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
.filter(num => num % 2 === 0)
.map(num => num * 2)
.reduce((sum, num) => sum + num, 0);
console.log(result); // 60يمكنك أيضاً تسلسل دالة .join() لتحويل مصفوفة إلى سلسلة نصية:
arr.filter(...)
.map(...)
.join(", ")جرّب بنفسك
function processFruits(fruits) {
// اكتب كودك هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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المجموعات - الجزء الثاني
الرياضيات - اتحاد المجموعاتالرياضيات - تقاطع المجموعاتالرياضيات - الفرق بين المجموعاتالرياضيات - الفرق المتناظرالمجموعات الجزئية والمجموعات الفائقةمراجعة - مجموعات الأصدقاء9دوال المصفوفات المتقدمة
دالتا Join و Splitدالة Mapدالة Filterدالة Reduceتسلسل دوال المصفوفاتهل ForEach و Map متماثلتان؟دالة Sortدالتا Find و FindIndexمراجعة - محترف التسلسل