A kulcs és az elem összetévesztése a for ciklusban JavaScriptben
Legyen egy tömb a hónapok neveivel:
let arr = [
'jan', 'feb', 'márc', 'ápr', 'máj', 'jún',
'júl', 'aug', 'szept', 'okt', 'nov', 'dec'
];
Legyen a month változóban
az aktuális hónap száma:
let month = 10;
Írjuk ki egy ciklussal az összes hónapot, közben az aktuális hónapot dőlttel jelöljük.
Egy programozó már meg is oldotta ezt a feladatot,
azonban hibázott, és nem figyelt arra,
hogy a month változóban
a hónap száma van, nem a neve:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // hiba itt
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Programozónk a tömb elemét
hasonlítja össze a month változóval.
De hiszen ebben a változóban a hónap száma van,
nem a neve!
Ahhoz, hogy a kód helyesen működjön,
a month-t a hónap számával,
vagyis a számláló i értékével kell összehasonlítani:
for (let i = 0; i < arr.length; i++){
if (month === i) { // kijavítottuk a hibát
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}