jQuery:使用substr()的另一种方法

jQuery: alternative way to do this with substr()

本文关键字:另一种 方法 使用 substr jQuery      更新时间:2023-09-26

我正在进行一个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有什么问题?你能帮忙吗?

下面是一个使用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/.