reduce()
اختزال المصفوفة لقيمة واحدة reduce()
reduce() تمرّ على كل عناصر المصفوفة وتبني قيمة تراكمية واحدة — مجموع، حاصل ضرب، أو حتى كائن جديد.
الأقوى والأكثر مرونة بين دوال المصفوفات. تأخذ دالة (acc, item) تُرجع القيمة المتراكمة الجديدة، بالإضافة لقيمة ابتدائية اختيارية (لكن يُنصح بها دائمًا). بدون قيمة ابتدائية، تبدأ acc من أول عنصر بالمصفوفة.
الصياغة
const result = array.reduce((acc, item, index, arr) => newAcc, initialValue);
⚡ جرّب بنفسك
عدّل الكود واضغط «تحديث» لترى النتيجة فورًا — التجربة أفضل معلّم.
⚡ محرّر تفاعلي
const numbers = [1, 2, 3, 4, 5]; const sum = numbers.reduce((acc, n) => acc + n, 0); console.log(sum); const max = numbers.reduce((acc, n) => (n > acc ? n : acc), numbers[0]); console.log(max);
وحدة التحكّم
اضغط «تشغيل» لرؤية النتيجة هنا.
أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| acc | القيمة المتراكمة حتى الآن |
| item | العنصر الحالي |
| initialValue | القيمة الابتدائية لـ acc — يُنصح بتحديدها دائمًا |
💡 نصائح عملية
- استخدمها لأي عملية اختزال: مجموع، حاصل ضرب، تجميع بكائن، أو حتى بناء مصفوفة جديدة
- حدّد القيمة الابتدائية دائمًا لتفادي سلوك غير متوقّع على مصفوفة فارغة
⚠️ أخطاء شائعة
- نسيان return داخل دالة reduce يفسد التراكم من الخطوة الثانية فصاعدًا
- نسيان القيمة الابتدائية يسبب خطأ TypeError على مصفوفة فارغة
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVASCRIPT الكامل بالعربي.