【发布时间】:2015-10-20 06:01:15
【问题描述】:
我正在制作一个刽子手游戏。我正在使用 indexOf() 函数来检查一个字母是否在一个单词中。每个字母都有一个按钮,当单击按钮时会发生以下情况(此功能适用于字母 A):
function A(event) {
if (event.target.classList.contains("disabled")) {
event.preventDefault();
}
document.getElementById("A").style.opacity = "0.5";
event.target.classList.add("disabled");
score = score + 1;
document.getElementById("Score").innerHTML = score;
for (var letter = 0; letter <= randomWord.length; letter++) {
if (randomWord[letter].indexOf("a") !== -1) {
document.getElementById("letter_" + letter).innerHTML = "A";
} else {
mistakesLeft = mistakesLeft - 1;
document.getElementById("attempsLeft").innerHTML = mistakesLeft;
console.log(mistakesLeft);
if (mistakesLeft == 7) {
document.getElementById("part-1").style.display = "block";
} else if (mistakesLeft == 6) {
document.getElementById("part-2").style.display = "block";
} else if (mistakesLeft == 5) {
document.getElementById("part-3").style.display = "block";
} else if (mistakesLeft == 4) {
document.getElementById("part-4").style.display = "block";
} else if (mistakesLeft == 3) {
document.getElementById("part-5").style.display = "block";
} else if (mistakesLeft == 2) {
document.getElementById("part-6").style.display = "block";
} else if (mistakesLeft == 1) {
document.getElementById("part-7").style.display = "block";
} else {
document.getElementById("part-8").style.display = "block";
}
}
break;
}
}
由于某种原因,当我的随机单词中包含“A”并且它不是第一个字母时,它不会打印到document.getElementById("letter_" + letter).innerHTML = "A";,而是继续到 else 语句并认为没有“ A”一词。如果“A”是单词的第一个字母,那么它会按照它的意思去做。我注意到问题可能是代码底部的中断(由于中断,它无法到达下一个字母) - 我该如何修复它,以便循环继续通过第一个循环,直到达到这个词没有减去任何部分的错误离开了吗?
【问题讨论】:
-
不应该是if条件必须是.indexOf("A")
-
randomWord是否包含您需要搜索的单词? -
不,randomwords 都是小写的,是的,randomWord 包含您需要猜测的单词的字符串。
标签: javascript for-loop indexof