2017-01-02 58 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