You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FreeCodeCamp凯撒密码(Rot13)代码问题:无法保留空格求排查

凯撒密码(Rot13)代码错误分析与修正

代码存在的三个核心问题:

  • 条件判断逻辑错误:if(temp !== NaN)完全无效,因为temp是字符串字符,永远不可能等于NaN。正确的判断逻辑应该是检查index !== -1——key.indexOf(temp)在找不到对应字符(比如空格、符号)时会返回-1。
  • 语法错误:keyAlph.[index]里多了一个多余的点,正确写法是keyAlph[index]。
  • 非字母字符丢失:遇到空格这类不在key中的字符时,代码没有将其追加到结果里,直接跳过导致空格丢失。需要在字符不在字母表时,直接把原字符加入结果。

修正后的代码:

function rot13(str) {
    let key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    let ans = '';
    let keyAlph = key.substring(13) + key.substring(0,13);

    for(let i = 0; i < str.length; i++){ 
        let temp = str.charAt(i);
        let index = key.indexOf(temp);
        if(index !== -1){
            ans += keyAlph[index];
        } else {
            // 保留空格、符号等非字母字符
            ans += temp;
        }
    }
    return ans;
}

内容的提问来源于stack exchange,提问作者Sir Dusty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:45:10