问题描述
所以...我有一个奇怪的问题?我正在练习简单的游戏,在这里您尝试猜测项目的名称。当我想在单击u后显示正确的字母时,遇到了奇怪的比较问题,因此...字符串的第一个字母等于相同的字母,但是其余的字符串字母-返回未定义...
for (x = 0; x < wylosowaneslowo.length; x++) {
if (wylosowaneslowo[x] == litera) {
id_litery.push(x);
console.log(wylosowaneslowo[x],litera,id_litery[x]);
}
}
- 字符串的第一个字符:
- 字符串的第二个字符:
解决方法
在您的代码中,您将推入数组并查看索引。因此,如果索引不匹配,则说明您在查找未定义的索引。
您可能想用可能性创建一个数组,并更改具有匹配项的索引。
var phrase = "Hello World";
var shown = phrase.split('').map(function (char) {
return char.match(/[a-z]/i) ? '_' : char;
});
function guess(letter) {
for (let i=0; i<phrase.length; i++) {
if (phrase[i].toLowerCase() === letter.toLowerCase()) {
shown[i] = phrase[i];
}
}
console.log("guess: ",letter," game: ",shown.join(" "));
}
guess("s");
guess("l");
guess("o");
guess("h");
guess("e");
guess("w");
guess("d");
guess("r");