如何检查同一个字母在一个单词中是否被多次使用(hangman项目,javascript)
我几乎完成了我正在创建的个人刽子手项目的javascript逻辑。我面临的最后一个问题是让程序识别“所选单词”中是否使用了相同的字母。例如,当选择“ninja”作为“所选单词”,并且用户选择“n”时,我希望我的计数器变量识别出有两个“n”,并在分数上加2而不是1 到目前为止,我的代码是:如何检查同一个字母在一个单词中是否被多次使用(hangman项目,javascript),javascript,prompt,Javascript,Prompt,我几乎完成了我正在创建的个人刽子手项目的javascript逻辑。我面临的最后一个问题是让程序识别“所选单词”中是否使用了相同的字母。例如,当选择“ninja”作为“所选单词”,并且用户选择“n”时,我希望我的计数器变量识别出有两个“n”,并在分数上加2而不是1 到目前为止,我的代码是: var secretWords = ["batman", "Donkey kong", "ninja", "programming"]; var chosenWord = secretWords[Math.
var secretWords = ["batman", "Donkey kong", "ninja",
"programming"];
var chosenWord = secretWords[Math.floor(Math.random()*secretWords.length)];
var guesses = 8;
console.log(chosenWord);
var letters = chosenWord.length;
var counter = 0;
var gameOver = guesses === 0;
console.log(guesses);
console.log(counter);
while(guesses !== 0){
const guess = prompt("GUESS A LETTER")
var guessLowerCase = guess.toLowerCase();
var isGuessedLetterInWord =
chosenWord.includes(guessLowerCase);
if (isGuessedLetterInWord) {
alert('nice'); counter ++;
} else {
alert('wrong'); guesses --;
}
}
if(counter === chosenWord.length){
alert("You Win!!");
}
if (guesses === 0){
alert("LOSER!");
}
一个简单的方法是按字母分割字符串并计数
let occurances = chosenWord.split(guessLowerCase).length - 1
也可以使用正则表达式搜索所有事件:
let occurances = [...chosenWord.matchAll(new RegExp(guessLowerCase, 'g'))].length