map، filter، reduce

توابع map، filter و reduce در برنامه‌نویسی

در دنیای برنامه‌نویسی مدرن، توابع map، filter و reduce از ابزارهای قدرتمند برای پردازش آرایه‌ها محسوب می‌شوند. این توابع با رویکردی تابعی (Functional) کار می‌کنند و کدهای شما را خوانا‌تر و مختصرتر می‌سازند.

تابع map

تابع map برای تبدیل هر عنصر یک آرایه به شکل دلخواه استفاده می‌شود. این تابع یک آرایه جدید برمی‌گرداند بدون آنکه آرایه اصلی را تغییر دهد:

  • هر عنصر آرایه را پردازش می‌کند
  • نتیجه پردازش را در آرایه جدید قرار می‌دهد
  • طول آرایه ورودی و خروجی یکسان است
مثال نتیجه
اعداد = [1, 2, 3] [2, 4, 6]
اعداد.map(x => x * 2) ['1!', '2!', '3!']

تابع filter

همانطور که از نامش پیداست، filter برای فیلتر کردن عناصر یک آرایه بر اساس شرط خاصی استفاده می‌شود:

  1. یک تابع تست برای هر عنصر اجرا می‌شود
  2. عناصری که شرط را برآورده کنند در آرایه جدید قرار می‌گیرند
  3. طول آرایه خروجی ممکن است کمتر از ورودی باشد
مثال: انتخاب اعداد زوج از یک آرایه
[4, 7, 2, 8].filter(x => x % 2 === 0) → [4, 2, 8]

تابع reduce

تابع reduce پیچیده‌تر از دو تابع قبلی است و برای محاسبه یک مقدار نهایی از روی آرایه استفاده می‌شود:

سینتکس پایه:
array.reduce((accumulator, currentValue) => { ... }, initialValue)

برای یادگیری عمیق‌تر درباره توابع آرایه در PHP می‌توانید اینجا را بزنید و مقاله جامع ما را مطالعه کنید.


مقایسه توابع

تابع ورودی خروجی کاربرد
map آرایه آرایه با طول برابر تبدیل عناصر
filter آرایه آرایه با طول کمتر یا مساوی فیلتر کردن عناصر
reduce آرایه یک مقدار واحد محاسبه تجمعی

این سه تابع اغلب به صورت زنجیره‌ای استفاده می‌شوند. مثلاً ابتدا داده‌ها را فیلتر می‌کنیم، سپس تبدیل می‌کنیم و در نهایت یک نتیجه کلی استخراج می‌کنیم.