我有一个小问题,我真的不知道如何解决:
我试图创建一个 for
循环来检查点击的字母是否与我的单词(Hang-man 应用程序)中的字母匹配。
这个想法是检查每个字母并检查它是否被猜到了。
我知道我可以用 .filter()
方法做到这一点,但我的挑战是用 for 循环来做到这一点。
现在的问题是,由于 If
语句在您输入第一个正确字母后变为真,它会迭代并消除所有字母。
我怎样才能让它只消除一个?
const wordGuessed = (word, guessedLetters) => {
word = word.split("");
let remaining = [...word]
for (let letter of word){
if(guessedLetters.includes(letter)){
remaining.splice(letter)
}
}
return remaining.length === 0;
};
答案 0 :(得分:0)
您可以在拼接方法代码中添加索引:
const wordGuessed = (word, guessedLetters) => {
word = word.split("");
let remaining = [...word]
word.forEach((letter, index) =>
if(guessedLetters.includes(letter)){
remaining.splice(index)
}
}
return remaining.length === 0;
};
答案 1 :(得分:0)
您使用了错误的拼接方式。
无论如何,如果您想删除字符串中出现的所有字母,我相信您可以使用 replaceAll 代替。
remaining = remaining.replaceAll(letter, "");
或者只是替换,如果你想删除第一次出现:
remaining = remaining.replace(letter, "");