javascript - 凯撒密码免费编程训练营挑战 - 错误返回并带有 12 个红点

标签 javascript

我正在免费编程训练营中进行凯撒密码挑战。 我相信我的代码应该可以工作,但我收到了一个我不明白的错误。我得到了 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/

相关文章:

javascript - 从 Javascript 中的数组中删除重复项(不修改数组)——理解背后的逻辑

javascript - Gruntjs 任务问题

javascript - Vuejs 嵌套动态组件

javascript - jQuery 上传文件插件 - 上传后如何重新加载页面?

javascript - Box2dweb - 碰撞接触点

javascript - MySQL/jQuery : fetch table results, 传入一个 jQuery 数组,一次只显示 6 个并随机旋转结果

javascript - 在 d3.js 中自定义比例函数

javascript - 如何在KnockoutJS中获取所选项目的id

javascript - 如何用多维数组中的整数替换字符串

javascript - 拉斐尔中的 fn 是什么意思?