Объркване на ключ и елемент в цикъл for в JavaScript
Нека е даден масив с имена на месеци:
let arr = [
'яну', 'фев', 'март', 'апр', 'май', 'юни',
'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'
];
Нека в променливата month се съхранява
номер на текущия месец:
let month = 10;
Нека с помощта на цикъл изведем всички месеци, като текущия месец ще изведем в курсив.
Някой програмист вече е решил тази задача,
обаче, той е сгрешил и не обърнал внимание
на това, че в променливата month
се съхранява номер на месеца, а не неговото име:
for (let i = 0; i < arr.length; i++) {
if (month === arr[i]) { // грешка тук
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}
Нашият програмист сравнява елемента от масива
с променливата month. Но в тази
променлива се съхранява номер на месеца,
а не неговото име!
За да работи кодът правилно,
трябва да се сравнява month
с номера на месеца, тоест
със стойността на брояча i:
for (let i = 0; i < arr.length; i++){
if (month === i) { // поправихме грешката
document.write('<i>' + arr[i] + '</i>');
}
else {
document.write(arr[i]);
}
document.write('<br>');
}