تخطَّ إلى المحتوى

flatMap()

تحويل ثم تسطيح بخطوة واحدة flatMap()

flatMap() تدمج map() وflat(1) بعملية واحدة أكفأ — تحوّل كل عنصر (وقد يُرجع عدة عناصر أو لا شيء) ثم تسطّح النتيجة مستوى واحد.

أنسب من map().flat() المتتاليتين لأنها لا تبني مصفوفة وسيطة مؤقتة. مفيدة جدًا حين تريد لكل عنصر أن يُنتج عددًا متغيّرًا من العناصر بالناتج: صفر، واحد، أو أكثر.

الصياغة

const result = array.flatMap((item, index, arr) => arrayOrValue);

⚡ جرّب بنفسك

عدّل الكود واضغط «تحديث» لترى النتيجة فورًا — التجربة أفضل معلّم.

⚡ محرّر تفاعلي
const sentence = ["مرحبًا بالعالم", "جافاسكريبت ممتع"];
const words = sentence.flatMap(s => s.split(" "));
console.log(words); // كل الكلمات بمصفوفة واحدة مسطّحة

// إزالة عناصر بإرجاع مصفوفة فارغة
const nums = [1, -2, 3, -4];
console.log(nums.flatMap(n => (n > 0 ? [n] : [])));
وحدة التحكّم
اضغط «تشغيل» لرؤية النتيجة هنا.

أهم المعاملات

المعاملالوظيفة
itemالعنصر الحالي
indexفهرس العنصر (اختياري)

💡 نصائح عملية

  • أرجع مصفوفة فارغة [] من الدالة لحذف عنصر من الناتج فعليًا — بديل عملي لـ filter+map معًا
  • flatMap تسطّح مستوى واحد فقط دائمًا — لا يوجد معامل depth مثل flat()

⚠️ أخطاء شائعة

  • استخدامها بدل map() العادية حين لا تحتاج تسطيحًا إطلاقًا — تعقيد بلا فائدة

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVASCRIPT الكامل بالعربي.