Функция checkLetter
неисправна. Я цитирую нижеприведенный оригинал для справки:
function checkLetter(button) {
const getLetter = document.getElementsByClassName('letter');
let letter;
for (let i = 0; i < getLetter.length; i++) {
if (button.textContent === getLetter[i].textContent) {
getLetter[i].className += ' show';
letter = getLetter[i].textContent;
}
else {
letter = null;
}
}
return letter;
}
Проблема здесь в том, что letter
обновляется каждый раз через l oop. Это означает, что он заканчивается тем значением, которое он получит на последней итерации, которое всегда будет null
, если только не была нажата последняя буква - выбрасывание любого совпадения, найденного на пути.
Одно очень простое исправление - инициализация letter
как null
, затем изменяйте его только тогда, когда найдено совпадение. Это гарантирует, что оно будет иметь правильное значение в конце. Итак, вот рабочая версия:
function checkLetter(button) {
const getLetter = document.getElementsByClassName('letter');
let letter = null;
for (let i = 0; i < getLetter.length; i++) {
if (button.textContent === getLetter[i].textContent) {
getLetter[i].className += ' show';
letter = getLetter[i].textContent;
}
}
return letter;
}