空格在Javascript中写为b

gut*_*ume 0 javascript

我正在尝试使用JavaScript完成python挑战,我被困在我的代码上

var letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];

var userInput = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp.        bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj.";

for(x=0; x<userInput.length; x++){
    var key = userInput[x];
    var findinLetters = letters[letters.indexOf(key)+2];
    document.write(findinLetters);
}
Run Code Online (Sandbox Code Playgroud)

代码的结果是:

ibhopebyoubdidntbtrundefinednslundefinedtebitbundefinedybhundefinedndbbthundefinedtsbwhundefinedtbcomputersbundefinedrebforbbdoingbitbinbundefinedybhundefinedndbisbinefficientbundefinedndbthundefinedtbsbwhybthisbtextbisbsoblongbbusingbstringbmundefinedketrundefinednsbbbisbrecommendedbbnowbundefinedpplybonbtheburlb

我的代码出了什么问题?

SLa*_*aks 8

indexOf()-1如果在数组中找不到该项,则返回.
你需要处理它,而不是盲目地添加2和转换所有未知字符b.

您还需要处理数组中的最后两个字符,而不是超过结尾.