پرنده‌نگر

پرنده‌نگر

تمرین یادگیری

مقدمه

«حلقه‌ی For» یکی از پرکاربردترین دستورها برای اجرای مکرر یک منطق است. در JavaScript، این حلقه شامل «کلیدواژه‌ی for»، یک هدر که داخل پرانتز قرار می‌گیرد و یک «بلوک کد» است که بدنه‌ی حلقه را در خود دارد و داخل آکولاد قرار می‌گیرد.

for (initialization; condition; step) {
  // code that is executed repeatedly as long as the condition is true
}

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

const list = ['a', 'b', 'c'];
for (let i = 0; i < list.length; i++) {
  // code that should be executed for each item list[i]
}

تعریف گام اغلب با استفاده از عملگر افزایش یا کاهش JavaScript انجام می‌شود، همان‌طور که در مثال بالا نشان داده شده است. این عملگرها یک متغیر را در جای خود تغییر می‌دهند. ++ یک واحد به یک عدد اضافه می‌کند و -- یک واحد از یک عدد کم می‌کند.

let i = 3;
i++;
// i is now 4

let j = 0;
j--;
// j is now -1

دستورالعمل‌ها

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

حالا می‌خواهید تعداد کل پرندگانی را که شمرده‌اید مشخص کنید، تعداد پرندگان یک هفته‌ی مشخص را حساب کنید و یک اشتباه در شمارش را اصلاح کنید.

Note

برای تمرین، هر یک از کارهای زیر را با یک حلقه‌ی for حل کنید.

1. مشخص کنید تا حالا در کل چند پرنده شمرده‌اید

بیایید تحلیل داده‌ها را با یک نگاه کلی شروع کنیم. ببینید از وقتی ثبت‌ها را شروع کرده‌اید، در کل چند پرنده شمرده‌اید.

تابعی به اسم totalBirdCount پیاده‌سازی کنید که یک شیء شبیه‌آرایه دریافت می‌کند که تعداد پرندگان هر روز را در خود دارد. این تابع باید تعداد کل پرندگانی را که شمرده‌اید برگرداند.

birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
totalBirdCount(birdsPerDay);
// => 34

2. تعداد پرندگان در یک هفته‌ی مشخص را حساب کنید

حالا که درکی کلی از تعداد پرندگانتان پیدا کرده‌اید، می‌خواهید تحلیلی دقیق‌تر انجام دهید.

تابعی به اسم birdsInWeek پیاده‌سازی کنید که یک شیء شبیه‌آرایه از تعداد پرندگان هر روز و شماره‌ی یک هفته را دریافت می‌کند. این تابع تعداد کل پرندگانی را که در آن هفته‌ی مشخص شمرده‌اید برمی‌گرداند. می‌توانید فرض کنید هفته‌ها همیشه کامل ثبت می‌شوند.

birdsPerDay = [2, 5, 0, 7, 4, 1, 3, 0, 2, 5, 0, 1, 3, 1];
birdsInWeek(birdsPerDay, 2);
// => 12

3. یک اشتباه در شمارش را اصلاح کنید

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

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

birdsPerDay = [2, 5, 0, 7, 4, 1];
fixBirdCountLog(birdsPerDay);
// => [3, 5, 1, 7, 5, 1]
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
JavaScript Exercism

آماده‌اید پرنده‌نگر را شروع کنید؟

در Exercism ثبت‌نام کنید تا JavaScript را همراه با 37 مفهوم159 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.