发出循环比较字母的问题

问题描述

所以...我有一个奇怪的问题?我正在练习简单的游戏,在这里您尝试猜测项目的名称。当我想在单击u后显示正确的字母时,遇到了奇怪的比较问题,因此...字符串的第一个字母等于相同的字母,但是其余的字符串字母-返回未定义...

这是我的代码,也是结果/输出

for (x = 0; x < wylosowaneslowo.length; x++) {
  if (wylosowaneslowo[x] == litera) {
    id_litery.push(x);
    console.log(wylosowaneslowo[x],litera,id_litery[x]);
  }
}
  1. 字符串的第一个字符:

    first character of string

  2. 字符串的第二个字符:

    second character of string

解决方法

在您的代码中,您将推入数组并查看索引。因此,如果索引不匹配,则说明您在查找未定义的索引。

您可能想用可能性创建一个数组,并更改具有匹配项的索引。

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");