Zámena kľúča a prvku v cykle for v JavaScripte
Nech je dané pole s názvami mesiacov:
let arr = [
'jan', 'feb', 'mar', 'apr', 'máj', 'jún',
'júl', 'aug', 'sep', 'okt', 'nov', 'dec'
];
Nech v premennej month je uložené
číslo aktuálneho mesiaca:
let month = 10;
Pomocou cyklu vypíšme všetky mesiace, pričom aktuálny mesiac vypíšme kurzívou.
Nejaký programátor už túto úlohu vyriešil,
avšak pomýlil sa a nevšimol si,
že v premennej month
je uložené číslo mesiaca, a nie jeho názov:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // chyba je tu
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Náš programátor porovnáva prvok poľa
s premennou month. Ale veď v tejto
premennej je uložené číslo mesiaca,
a nie jeho názov!
Aby kód fungoval správne,
je potrebné porovnávať month
s číslom mesiaca, teda
s hodnotou počítadla i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // opravili sme chybu
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}