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 برای فیلتر کردن عناصر یک آرایه بر اساس شرط خاصی استفاده میشود:
- یک تابع تست برای هر عنصر اجرا میشود
- عناصری که شرط را برآورده کنند در آرایه جدید قرار میگیرند
- طول آرایه خروجی ممکن است کمتر از ورودی باشد
مثال: انتخاب اعداد زوج از یک آرایه
[4, 7, 2, 8].filter(x => x % 2 === 0) → [4, 2, 8]
تابع reduce
تابع reduce پیچیدهتر از دو تابع قبلی است و برای محاسبه یک مقدار نهایی از روی آرایه استفاده میشود:
سینتکس پایه:
array.reduce((accumulator, currentValue) => { ... }, initialValue)
برای یادگیری عمیقتر درباره توابع آرایه در PHP میتوانید اینجا را بزنید و مقاله جامع ما را مطالعه کنید.
مقایسه توابع
تابع | ورودی | خروجی | کاربرد |
---|---|---|---|
map | آرایه | آرایه با طول برابر | تبدیل عناصر |
filter | آرایه | آرایه با طول کمتر یا مساوی | فیلتر کردن عناصر |
reduce | آرایه | یک مقدار واحد | محاسبه تجمعی |
این سه تابع اغلب به صورت زنجیرهای استفاده میشوند. مثلاً ابتدا دادهها را فیلتر میکنیم، سپس تبدیل میکنیم و در نهایت یک نتیجه کلی استخراج میکنیم.