替换字符串循环中的字符并且函数失败

时间:2018-02-01 22:16:12

标签: javascript string

我有一个字符串存储为变量randWord。

我使用循环隐藏了一系列空格的randWord。

var tempSpace = '';
for (var i = 0; i < randWordLngth; i++) {
   tempSpace = tempSpace + ' ___ ';
}

用户试图猜出隐藏的单词。猜测存储在名为userInput的字符串变量中。

我创建了这个函数,用正确的用户猜测字母替换空白点。

String.prototype.replaceAt = function(index, replacement) {
    return this.substr(0, index) + replacement+ this.substr(index + replacement.length);
}

我需要调用该函数并在正确的索引处打印正确猜到的单词,但将未打开的单词留空。我试图用另一个循环建立这个但是我的语法错了。

wordPosition = tempSpace.replaceAt(positions, userInput);

if (wordPosition != ' ___ ') {
    for (var i = 0; i < randWordLngth; i++) {
        tempSpace = tempSpace + ' ___ ';
        $('#wordBox').html(wordPosition)
    }
}

为了发现用户猜到的字符是什么,我创建了一个函数

function getAllIndexes(word, val) {
    positions = [];
    for(i = 0; i < word.length; i++) {
        if (word[i] === val) {
            positions.push(i);
            console.log("the position of the letter(s) are " + positions);
        }
    }
}

我称之为:

getAllIndexes(randWord, userInput);

您可以在图片中看到失败的示例。隐藏的单词是gallery,用户(我)猜对了'l'。它应该在第2和第3个索引处打印两次字符l。 enter image description here

0 个答案:

没有答案