Verwechslung von Schlüssel und Element in der for-Schleife in JavaScript
Gegeben sei ein Array mit den Namen der Monate:
let arr = [
'янв', 'фев', 'март', 'апр', 'май', 'июнь',
'июль', 'авг', 'сен', 'окт', 'ноя', 'дек'
];
Nehmen wir an, in der Variable month ist
die Nummer des aktuellen Monats gespeichert:
let month = 10;
Lassen Sie uns mit einer Schleife alle Monate ausgeben, wobei wir den aktuellen Monat kursiv darstellen.
Ein gewisser Programmierer hat diese Aufgabe bereits gelöst,
allerdings hat er einen Fehler gemacht und nicht beachtet,
dass in der Variable month
die Monatsnummer gespeichert ist, und nicht sein Name:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // Fehler hier
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Unser Programmierer vergleicht das Element des Arrays
mit der Variable month. Aber in dieser
Variable ist doch die Monatsnummer gespeichert,
und nicht der Monatsname!
Damit der Code korrekt funktioniert,
muss month
mit der Monatsnummer verglichen werden, also
mit dem Wert des Zählers i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // Fehler korrigiert
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}