Pomieszanie klucza i elementu w pętli for w JavaScript
Niech będzie dana tablica z nazwami miesięcy:
let arr = [
'sty', 'lut', 'mar', 'kwi', 'maj', 'cze',
'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'
];
Niech w zmiennej month będzie przechowywany
numer bieżącego miesiąca:
let month = 10;
Za pomocą pętli wypiszmy wszystkie miesiące, przy czym bieżący miesiąc wypiszmy kursywem.
Pewien programista już rozwiązał to zadanie,
jednak popełnił błąd i nie zwrócił uwagi
na to, że w zmiennej month
przechowywany jest numer miesiąca, a nie jego nazwa:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // błąd tutaj
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Nasz programista porównuje element tablicy
ze zmienną month. Ale przecież w tej
zmiennej przechowywany jest numer miesiąca,
a nie jego nazwa!
Aby kod działał poprawnie,
należy porównywać month
z numerem miesiąca, to znaczy
z wartością licznika i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // poprawiono błąd
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}