کاهش آرایه با reduce
کاهش آرایه با متد reduce در جاوااسکریپت
متد reduce یکی از قدرتمندترین و انعطافپذیرترین متدهای آرایه در جاوااسکریپت است که امکان پردازش و تبدیل آرایهها به یک مقدار واحد را فراهم میکند. این متد با عبور از هر عنصر آرایه و انجام عملیات تجمیعی، خروجی نهایی را محاسبه میکند.
سینتکس پایه متد reduce
سینتکس اصلی این متد به صورت زیر است:
array.reduce(callback(accumulator, currentValue, index, array), initialValue)
- accumulator: مقدار تجمیعشده از عملیات قبلی
- currentValue: عنصر فعلی آرایه که در حال پردازش است
- index (اختیاری): اندیس عنصر فعلی
- array (اختیاری): آرایه اصلی
- initialValue (اختیاری): مقدار اولیه برای accumulator
مثالهای کاربردی
در ادامه چند نمونه عملی از کاربرد متد reduce را بررسی میکنیم:
کاربرد | مثال |
---|---|
جمع اعداد آرایه |
const numbers = [1, 2, 3, 4]; const sum = numbers.reduce((acc, curr) => acc + curr, 0); // نتیجه: 10 |
تبدیل آرایه به شیء |
const fruits = ['سیب', 'موز', 'پرتقال']; const fruitObj = fruits.reduce((acc, curr, index) => { acc[index] = curr; return acc; }, {}); // نتیجه: {0: 'سیب', 1: 'موز', 2: 'پرتقال'} |
نکات کلیدی در استفاده از reduce
- اگر مقدار اولیه (initialValue) مشخص نشود، اولین عنصر آرایه به عنوان مقدار اولیه accumulator در نظر گرفته میشود.
- برای آرایههای خالی، حتماً باید مقدار اولیه تعیین شود، در غیر این صورت خطا ایجاد میشود.
- متد reduceRight نیز وجود دارد که آرایه را از انتها به ابتدا پردازش میکند.
برای مطالعه بیشتر و مثالهای پیشرفتهتر میتوانید به منبع مراجعه کنید.
کاربردهای پیشرفته: از reduce میتوان برای پیادهسازی توابعی مانند map، filter، flatten کردن آرایهها، گروهبندی دادهها و بسیاری از عملیات پیچیده دیگر استفاده کرد.