لطباعة كل قيم مصفوفة طويلة لا نكتب سطرًا لكل قيمة. نستخدم حلقة for ونجعل العدّاد i هو رقم الترتيب: يبدأ من 0 ويتوقف قبل length.
let degreeList = [2, 1, 2, 1, 0];
for (let i = 0; i < degreeList.length; i++) {
console.log(degreeList[i]);
}2 1 2 1 0
i < list.length وليس i <= list.length؛ فآخر رقم ترتيب هو length - 1. واستخدام length بدل كتابة العدد يجعل البرنامج يعمل مهما تغيّر عدد القيم.المجموع والمتوسط والعدّ
للمجموع نبدأ بمتغير قيمته 0 ونضيف إليه كل قيمة داخل الحلقة. وبعد الحلقة نقسم المجموع على length لنحصل على المتوسط:
let runLogs = [5, 2, 4, 1, 3, 3];
let total = 0;
for (let i = 0; i < runLogs.length; i++) {
total = total + runLogs[i];
}
console.log(total);
console.log(total / runLogs.length);18 3
وبوضع if داخل الحلقة نفحص كل قيمة. هنا نعدّ الدرجات التي تساوي 80 أو أكثر، ونطبع العدد بعد الحلقة:
let scoreList = [52, 90, 70, 83, 63, 72, 89];
let count = 0;
for (let i = 0; i < scoreList.length; i++) {
if (scoreList[i] >= 80) {
count = count + 1;
}
}
console.log("80 or more: " + count);80 or more: 3
حلقة for...of
إذا كنا نحتاج القيم فقط ولا يهمنا رقم الترتيب، فهناك طريقة أقصر: for...of تأخذ قيم المصفوفة واحدة واحدة بالترتيب وتضعها في متغير، دون عدّاد ولا length.
let degreeList = [8, 6, 11, 10];
for (let degree of degreeList) {
console.log(degree);
}8 6 11 10
مثال: في سحب على تذاكر، الرقم الفائز هو الذي يقبل القسمة على 7 (باقي القسمة 0). نفحص كل تذكرة ونطبع الفائزة فقط:
const numList = [128, 254, 581, 12, 783, 49, 429];
for (const num of numList) {
if (num % 7 == 0) {
console.log(num);
}
}581 49
for...of المتغير يحمل القيمة نفسها وليس رقم ترتيبها؛ فلا تكتب numList[num]. ويمكن تعريفه بـ const لأنه يُنشأ من جديد في كل دورة، أما i في for العادية فلا بد من let لأنها تتغير.تدريبات
أكمل الفراغين باستخدام tempList.length بدل كتابة العدد 14، ليطبع البرنامج متوسط درجات الحرارة.
let tempList = [36.0, 36.5, 37.0, 36.5, 36.0, 37.0, 36.5, 36.5, 37.0, 36.0, 36.5, 37.0, 36.5, 36.0];
let sum = 0;
for (let i = 0; i < ___; i++) {
sum = sum + tempList[i];
}
console.log(sum / ___);اضغط «تشغيل» لترى النتيجة. بحلقة for تتكرر بعدد قيم scoreList، اطبع Pass لكل درجة أكبر من أو تساوي 80.
let scoreList = [52, 90, 70, 83, 63, 72, 89];
اضغط «تشغيل» لترى النتيجة. أنشئ المصفوفة wordList بالقيم "apple" و"banana" و"orange"، ثم اطبع كل قيمة في سطر باستخدام for...of والمتغير word.
اضغط «تشغيل» لترى النتيجة. أكمل الشرط ليطبع البرنامج أرقام التذاكر التي تقبل القسمة على 7 فقط.
تلميح
باقي القسمة% على 7 يجب أن يساوي 0.const numList = [128, 254, 458, 547, 125, 305, 581, 12, 783, 429];
for (const num of numList) {
if (___) {
console.log(num);
}
}اضغط «تشغيل» لترى النتيجة. البرنامج يطبع القيم بحلقة for بالعدّاد. أعد كتابته باستخدام for...of والمتغير num، واجعل كل سطر بالشكل Number 2 ثم Number 4 وهكذا.
const numList = [2, 4, 6, 8];
for (let i = 0; i < numList.length; i++) {
console.log(numList[i]);
}اضغط «تشغيل» لترى النتيجة. هذا ما صرفه طالب من مصروفه في 7 أيام. بحلقة for...of احسب المجموع، ثم اطبع Total: 140 ثم Average: 20 (المتوسط = المجموع ÷ length).
const spent = [15, 20, 10, 25, 30, 20, 20];
اضغط «تشغيل» لترى النتيجة. سجل الحضور: "P" حاضر و"A" غائب. عُدّ أيام الغياب بحلقة for...of واطبع Absent days: 3.
تلميح
ابدأ عدّادًا من 0 وزِده داخلif، واطبعه بعد الحلقة.const attendance = ["P", "A", "P", "P", "A", "P", "A", "P"];
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
for (let i = 0; i < list.length; i++)معlist[i]تمرّ على كل القيم بأرقام ترتيبها.for (const x of list)تعطيك القيم نفسها بالترتيب، دون عدّاد.- المجموع يبدأ من 0 ويُضاف إليه داخل الحلقة، والمتوسط
sum / list.lengthبعدها.