مراقب الطيور

مراقب الطيور

تمرين تعلّمي

مقدمة

تُعدّ حلقة 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.