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

آموزش rest parameter در جاوااسکریپت؛ جمع آرگومان‌های اضافه

destructuring و spread و rest در جاوااسکریپت · 0٪

✍️ همان سه‌نقطه در تعریف پارامترهای تابع، نقش دیگری دارد: rest parameter یا جمع‌کردن آرگومان‌های باقی‌مانده. اگر تابع یک پارامتر ثابت و بعد ...extras داشته باشه، اولین آرگومان به پارامتر ثابت می‌رسه و بقیه داخل آرایه extras جمع می‌شن. rest باید آخرین پارامتر باشد.

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

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

فعالیت شما

sumExtras(base, ...extras) را بنویس. همه آرگومان‌ها عدد متناهی‌اند و base همیشه داده می‌شود. جمع base و همه extras را برگردان؛ (10,2,3) => 15، فقط (10) => 10 و (10,-3,0) => 7. تعداد آرگومان‌های اضافه محدود نیست.

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

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

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

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

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

کد اولیهٔ فعالیت

function sumExtras(base, ...extras) {
  // TODO: base را همراه همه مقدارهای extras جمع کن.
}