JavaScript-ի for ցիկլում բանալու և տարրի խառնաշփոթը
Ենթադրենք տրված է ամիսների անուններով զանգված.
let arr = [
'հնվ', 'փտվ', 'մրտ', 'ապր', 'մյս', 'հնս',
'հլս', 'օգս', 'սեպ', 'հոկ', 'նոյ', 'դեկ'
];
Ենթադրենք month փոփոխականում
պահվում է ընթացիկ ամսվա համարը.
let month = 10;
Օգտագործենք ցիկլ՝ բոլոր ամիսները արտածելու համար, իսկ ընթացիկ ամիսը արտածենք շեղագիրով։
Ինչ-որ ծրագրավորող արդեն լուծել է այս խնդիրը,
սակայն, նա սխալվել է և ուշադրություն չի դարձրել
այն բանին, որ month փոփոխականում
պահվում է ամսվա համարը, և ոչ թե դրա անունը.
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // սխալն այստեղ է
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Մեր ծրագրավորողը համեմատում է զանգվածի տարրը
month փոփոխականի հետ։ Բայց այդ
փոփոխականում պահվում է ամսվա համարը,
և ոչ թե դրա անունը։
Որպեսզի կոդը ճիշտ աշխատի,
պետք է համեմատել month-ը
ամսվա համարի, այսինքն
հաշվիչի i արժեքի հետ.
for (let i = 0; i < arr.length; i++){
if (month === i) { // ուղղեցինք սխալը
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}