如何检查同一单词是否在一个单词中使用多次(hang子手项目,javascript)

问题描述 投票:0回答:1

我几乎完成了我正在创建的个人子手项目的javascript逻辑。我遇到的最后一个问题之一是让程序识别“选择的单词”中是否使用了相同的字母。例如,当选择“忍者”作为“选择的单词”,并且用户选择“ 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!");
}
javascript prompt
1个回答
0
投票

一个简单的技巧是按字母和数字分割字符串。

let occurances = chosenWord.split(guessLowerCase).length - 1

或者您可以使用正则表达式搜索所有事件:

let occurances = [...chosenWord.matchAll(new RegExp(guessLowerCase, 'g'))].length
© www.soinside.com 2019 - 2024. All rights reserved.