如何检查同一个字母在一个单词中是否被多次使用(hangman项目,javascript)

如何检查同一个字母在一个单词中是否被多次使用(hangman项目,javascript),javascript,prompt,Javascript,Prompt,我几乎完成了我正在创建的个人刽子手项目的javascript逻辑。我面临的最后一个问题是让程序识别“所选单词”中是否使用了相同的字母。例如,当选择“ninja”作为“所选单词”,并且用户选择“n”时,我希望我的计数器变量识别出有两个“n”,并在分数上加2而不是1 到目前为止,我的代码是: var secretWords = ["batman", "Donkey kong", "ninja", "programming"]; var chosenWord = secretWords[Math.

我几乎完成了我正在创建的个人刽子手项目的javascript逻辑。我面临的最后一个问题是让程序识别“所选单词”中是否使用了相同的字母。例如,当选择“ninja”作为“所选单词”,并且用户选择“n”时,我希望我的计数器变量识别出有两个“n”,并在分数上加2而不是1

到目前为止,我的代码是:

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