2017-01-02 42 views
-1

我一直在研究ceaser密码算法,但我一直无法理解为什么连接数组返回空间处于奇怪状态的原因。连接数组中的空间

function rot13(str) { // LBH QVQ VG! 
    var string = str.split(''); 

    var codedStr = []; 

    var encoded = []; 
    for (var k=0; k < string.length; k++){ 
    codedStr.push(string[k].charCodeAt()); 
    } 
    for(var i = 0; i < codedStr.length; i++){ 
    if(codedStr[i] > 77){ 
     codedStr[i] -= 13; 
    } 
    else if(codedStr[i] == 32 || codedStr[i] == 63){ 
     codedStr[i] = codedStr[i]; 
    } 

    else{ 
     codedStr[i] += 13; 
    } 
    encoded.push(codedStr[i]); 
    } 
    var decode = codedStr.map(String.fromCharCode); 
    var result = decode.join(''); 
    return result; 
} 

// Change the inputs below to test 
console.log(rot13("SERR PBQR PNZC")); 
+1

以一个调试器和调试代码。 – zerkms

回答

2

String.fromCharCode接受多个参数,map提供3.您应该使用

codedStr.map(code => String.fromCharCode(code)); 
+0

这解决了我的问题。我无法理解为什么它会吐出更多的空间。 – Ozan