1

我正在进行一个 codecademy 练习,我们正在使用 jQuery/JavaScript 构建一个刽子手游戏。播放器以一串下划线字符 '' 如果他们猜出单词中的某个字母,则应将相应的下划线替换为该字母。例如,如果单词是“tree”并且玩家猜测“e”,则该函数应返回“ _ee”

我使用 gsub 编写了函数。N 是字符串应该被更改的位置,c 是要在原始字符串的该位置插入的字符。这通过了 codecademy 的测试。

function alterAt ( n, c, originalString ) { 
   var k = originalString.gsub(n, c ); 
   return k; 

}

但是,codecademy 告诉我使用函数 substr() 和连接返回一个替换了字母的新字符串。我不知道该怎么做,我什至不确定这是否是更好的方法。使用 gsub 有什么问题?你能帮忙吗?

4

1 回答 1

5

这是使用的版本substr()

function alterAt ( n, c, originalString ) { 
    return(originalString.substr(0, n) + c + originalString.substr(n + 1));
}

工作演示:http: //jsfiddle.net/jfriend00/YX94Q/

如果在你的刽子手游戏的上下文中,你有两个字符串,一个是原始字符串,一个是下划线加上猜测的字母,并且你想对下划线应用猜测,你可以这样做:

function alterAt ( n, c, originalString ) { 
    return(originalString.substr(0, n) + c + originalString.substr(n + 1));
}

function replaceMatchingUnderscores(guessChar, displayStr, original) {
    var index = 0;
    while ((index = original.indexOf(guessChar, index)) !== -1) {
        displayStr = alterAt(index, guessChar, displayStr);
        index++;
    }
    return(displayStr);
}

工作演示:http: //jsfiddle.net/jfriend00/EwfxW/

于 2012-09-08T20:43:33.470 回答