0
我正在尝试使用codecademy的指令来构建hang子手游戏,但我一个人很难过。在下面的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'。这里有一个小提琴我不能用这个词就是“不管”的工作:
checkLetter = indexOf(letter, checkLetter +1);
的.indexOf()
方法需要调用一个字符串,就像是:http://jsfiddle.net/mjmitche/YAPWm/2/
例html和预期的结果? – Daedalus
如果猜测是正确的,它应该返回由猜测修改的显示。例如,如果单词是树并且玩家猜测'e',它应该返回'__ee'。这里有一个小提琴,我无法使用单词“无论”工作http://jsfiddle.net/mjmitche/YAPWm/ – Leahcim
不是_the_问题,但你使用['.substr()'](https:// developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substr)不正确:第二个参数应该是长度,而不是结束索引 - 你使用它像['.substring()'] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/substring) - 所以你的第二个'.substr()'操作试图提取字符串末尾的字符,尽管这实际上不会导致错误。你的第二次使用可能是'originalString.substr(n + 1)' - 没有第二个参数它选择字符串结束。 – nnnnnn