我正在免费编程训练营中进行凯撒密码挑战。 我相信我的代码应该可以工作,但我收到了一个我不明白的错误。我得到了 12 个红点。我相信这与空值有关。我用http://pythontutor.com/visualize.html#mode=edit我的数组返回空字符串。我不知道为什么。
function rot13(str) {
//str = str.split('');
var arr = [];
// var regex = /[^a-zA-Z]/g;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) {
arr.push(String.fromCharCode(str.charCodeAt[i] += 13));
} else if(str.charCodeAt(i) >= 78 && str.charCodeAt(i) <= 90){
arr.push(String.fromCharCode(str.charCodeAt[i] -= 13));
} else if (str.charCodeAt(i) < 65){
arr.push(str[i]);
}
}
return arr.join('');
}
rot13("SERR PBQR PNZC");
最佳答案
我刚才也遇到了同样的问题,我的代码是正确的,但我得到了那个红点。所以我开始测试并注意到每个数组的末尾都有一个空字符串。查看下面的数组。
["F", "R", "E", "E", " ", "C", "O", "D", "E", " ", "C", "A", "M", "P", " "]
所以我只是从末尾删除了空字符串,然后就通过了!
arr.splice(-1,1);
["F", "R", "E", "E", " ", "C", "O", "D", "E", " ", "C", "A", "M", "P"]
关于javascript - 凯撒密码免费编程训练营挑战 - 错误返回并带有 12 个红点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47374026/