无法使此功能正常工作

时间:2012-09-08 21:52:52

标签: javascript

我正在尝试使用codecademy的指令构建一个刽子手游戏,但我很难单独跟随。在下面的guessLetter函数中,我按照他们给我的说明添加了两行代码

shown = alterAt(checkLetter,letter,shown);           ///this is mine

和这个

checkLetter = indexOf(letter, checkLetter +1); 

然而,我无法通过测试。如果你能提供帮助,我将不胜感激。

// Skip to guessLetter(). You shouldn't need to touch this function.
function alterAt ( n, c, originalString ) {
    return originalString.substr(0,n) + c + originalString.substr(n+1,originalString.length);
}

function guessLetter( letter, shown, answer ) {
    var checkLetter = -1;  // This variable will hold the indexOf()

    checkLetter = answer.indexOf(letter); // Single Argument Version starting at 0
    while ( checkLetter >= 0 ) {

        // Replace the letter in shown with alterAt() and then store in shown.
       shown = alterAt(checkLetter,letter,shown);           ///this is mine
        // Use indexOf() again and store in checkLetter

        checkLetter = indexOf(letter, checkLetter +1);       ///this is mine
    }

    // Return our string, modified or not
    return shown;
}

更新

如果猜测是正确的,它应该返回显示由猜测修改的。例如,如果单词是树而玩家猜测'e',则应返回'__ee'。这是一个小提琴,我无法使用“无论”这个词开始工作:http://jsfiddle.net/mjmitche/YAPWm/2/

1 个答案:

答案 0 :(得分:0)

这一行有错误:

checkLetter = indexOf(letter, checkLetter +1);

需要在.indexOf()之前的行上调用while()方法。将其更改为:

checkLetter = answer.indexOf(letter, checkLetter +1);

工作版本:http://jsfiddle.net/YAPWm/1/