0

我正在创建一个 Hangman 的 JavaScript 游戏(只有 JavaScript,没有 jQuery)这是我用“_”替换所有未猜到的字母的代码

function partialWords(random_word, letters) {
    var returnLetter = "";
    for (i = 0; i < random_word.length; i++) {
        if (letters.indexOf(random_word[i]) !== -1) {
            returnLetter = returnLetter + random_word[i];
        } else {
            returnLetter = returnLetter + ' _ ';
        }
    }
    return returnLetter;
}

我只是想知道是否有人能够帮助我弄清楚如何检查是否没有更多的“_”,在此先感谢!

4

2 回答 2

2

要找出给定字符串中是否有任何内容: _

if (stringVariableToCheck.indexOf('_') !== -1) {
    // there's at least one '_' in the string
}

要找出该字符串中有多少: _

var numOfUnderScores = stringVariableToCheck.replace(/[^_]/g,'').length;

一个有点做作的JS Fiddle 演示(不过,该演示确实需要最新的浏览器)。

于 2013-10-06T17:39:10.130 回答
1

字符串对象也有一个indexOf方法

if(returnLetter.indexOf('_') == -1) {

}

您还可以将丢失的字母保存在单独的数组中

function partialWords(random_word, letters) {
    var returnLetter = "";
    var missedLetters = [];
    for (i = 0; i < random_word.length; i++) {
        if (letters.indexOf(random_word[i]) !== -1) {
            returnLetter = returnLetter + random_word[i];
        } else {
            returnLetter = returnLetter + ' _ ';
            missedLetters.push(random_word[i]);
        }
    }

    if(missedLetters.length > 0) {
        // do something
        // send missed letters
        return missedLetters.join(', ');
    }
    return returnLetter;
}
于 2013-10-06T17:41:46.967 回答