Confusion entre la clé et l'élément dans la boucle for en JavaScript
Soit un tableau avec les noms des mois :
let arr = [
'janv', 'fév', 'mars', 'avr', 'mai', 'juin',
'juil', 'août', 'sept', 'oct', 'nov', 'déc'
];
Supposons que la variable month contienne
le numéro du mois en cours :
let month = 10;
Affichons tous les mois à l'aide d'une boucle, en mettant le mois en cours en italique.
Un certain programmeur a déjà résolu ce problème,
mais il a fait une erreur en ne prêtant pas attention
au fait que la variable month
contient le numéro du mois, et non son nom :
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // erreur ici
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Notre programmeur compare l'élément du tableau
à la variable month. Mais cette
variable contient le numéro du mois,
et non son nom !
Pour que le code fonctionne correctement,
il faut comparer month
au numéro du mois, c'est-à-dire
à la valeur du compteur i :
for (let i = 0; i < arr.length; i++){
if (month === i) { // erreur corrigée
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}