Caesars Cipher Free Code Camp挑战 - 错误返回12个红点

时间:2017-11-19 05:32:40

标签: javascript

我正在免费代码营地进行Caesars Cipher挑战。 我相信我的代码应该正常工作但我收到的错误我不明白。我得到12个红点。我相信它与null值有关。我使用the documentation,我的数组返回空字符串。我不知道为什么。

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");

1 个答案:

答案 0 :(得分:1)

我刚才有同样的问题,我的代码是正确的,但我得到了那个红点。所以我开始测试并注意到每个数组末尾都有一个空字符串。看看下面的数组。

["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"]
相关问题