حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش جاوااسکریپت تکمیلی؛ توابع و پردازش داده

آموزش reduce در جاوااسکریپت؛ جمع با انباشته‌گر

تجمیع داده‌ها در جاوااسکریپت با reduce · 0٪

✍️ متد reduce چند عضو را به یک نتیجه تبدیل می‌کنه. نتیجه می‌تونه عدد، شیء یا حتی آرایه باشه. callback آن یک انباشته‌گر یا accumulator می‌گیره؛ یعنی نتیجه‌ای که تا این لحظه ساخته شده. عضو فعلی را به این نتیجه اضافه می‌کنیم و مقدار تازه را برای دور بعد برمی‌گردونیم.

در مثال هزینه ارسال، مقدار آغازین صفر است. برای هر بسته، وزنش با جمع قبلی جمع می‌شه. بعد از آخرین عضو، همان جمع نهایی خروجی reduce می‌شه. اگر هیچ بسته‌ای وجود نداشته باشه، مقدار آغازین صفر مستقیم برمی‌گرده. همین ویژگی کمک می‌کنه رفتار حالت خالی هم از اول روشن باشه.

خطای رایج، فراموش کردن return در بدنه آکولادی callback است. انباشته‌گر دور بعد، خروجی دور قبله؛ اگر چیزی برنگردونی، ادامه محاسبه خراب می‌شه. قبل از نوشتن reduce، این جمله را کامل کن: «نتیجه من از چه نوعی است و مقدار شروع آن چیست؟» برای جمع، پاسخ عدد و صفر است؛ برای شمارش گروه‌ها بعداً یک شیء انتخاب می‌کنیم.

const weights = [2, 5, 3];
const total = weights.reduce((sum, weight) => sum + weight, 0);
console.log(total); // 10
console.log([].reduce((sum, weight) => sum + weight, 0)); // 0

فعالیت شما

نقش total، weight و مقدار آغازین صفر را در مثال جمع وزن‌ها دنبال کن.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید: