کاهش آرایه با 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

  1. اگر مقدار اولیه (initialValue) مشخص نشود، اولین عنصر آرایه به عنوان مقدار اولیه accumulator در نظر گرفته می‌شود.
  2. برای آرایه‌های خالی، حتماً باید مقدار اولیه تعیین شود، در غیر این صورت خطا ایجاد می‌شود.
  3. متد reduceRight نیز وجود دارد که آرایه را از انتها به ابتدا پردازش می‌کند.

برای مطالعه بیشتر و مثال‌های پیشرفته‌تر می‌توانید به منبع مراجعه کنید.

کاربردهای پیشرفته: از reduce می‌توان برای پیاده‌سازی توابعی مانند map، filter، flatten کردن آرایه‌ها، گروه‌بندی داده‌ها و بسیاری از عملیات پیچیده دیگر استفاده کرد.