0

ハングマンの 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 に答える