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

پیش‌بینی reduce در جاوااسکریپت؛ مقدار آغازین و آرایه خالی

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

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

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

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

const sum = values => values.reduce((total, value) => total + value, 5);
console.log(sum([2, 3]));
console.log(sum([]));

فعالیت شما

دو خروجی جمع را به ترتیب انتخاب کن؛ مقدار آغازین هر دو reduce برابر 5 است.

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

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

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

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

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

گزینه‌های پیش‌بینی خروجی

  1. 10 سپس 5
  2. 5 سپس 0
  3. 10 سپس خطا