2016-11-20 34 views
0

我寫了一個函數,它可以將字符串轉換爲uni代碼值數組。現在我想要一種將這個數組轉換回字符串的方式。我使用String.fromCharCode()將uni代碼值數組轉換爲字符串

function rot13(str) { 
 

 
     var string = str.toUpperCase(); 
 
     var myArray = []; 
 

 
     for (var i = 0; i < string.length; i++) { 
 
     myArray.push(string.charCodeAt([i])); 
 
     } 
 

 
     var b = String.fromCharCode(myArray); 
 
     return b; 
 
    } 
 

 
    rot13("SERR PBQR PNZC");

,我沒有得到任何回報?

(在以後的日子我打算在陣列中加入13到每個UNI代碼)

+1

'String.fromCharCode(myArray);'...數組作爲參數????? –

回答

0

String.fromCharCode()接受號碼的列表作爲參數,而不是陣列。您可以將陣列:

function rot13(str) { 
 

 
    var string = str.toUpperCase(); 
 
    var myArray = []; 
 

 
    for (var i = 0; i < string.length; i++) { 
 
    myArray.push(string.charCodeAt(i)); 
 
    } 
 

 
    var b = String.fromCharCode.apply(String, myArray); 
 
    return b; 
 
} 
 

 
console.log(rot13("SERR PBQR PNZC"));

或者使用ES6傳播:

function rot13(str) { 
 

 
    var string = str.toUpperCase(); 
 
    var myArray = []; 
 

 
    for (var i = 0; i < string.length; i++) { 
 
    myArray.push(string.charCodeAt(i)); 
 
    } 
 

 
    var b = String.fromCharCode(...myArray); 
 
    return b; 
 
} 
 

 
console.log(rot13("SERR PBQR PNZC"));

0

在你的代碼是一個數組應用String.fromCharCode相反,你需要提供charCode作爲參數。

您可以在for循環中使用String.fromCharCode來獲得結果。

function rot13(str) { 
 
    var string = str.toUpperCase(); 
 
    var res=''; 
 
    for (var i = 0; i < string.length; i++) { 
 
    res += String.fromCharCode(string.charCodeAt([i])); 
 
    } 
 
    return res; 
 
} 
 

 
rot13("SERR PBQR PNZC");


,或者提供的值作爲使用spread syntax(...)Function#apply方法的參數的陣列。

0

根據String.fromCharCode文檔,該方法將單個值作爲參數,而不是數組。你可以申請或使用傳播運營商來完成工作。

function rot13(str) { 
 

 
    var string = str.toUpperCase(); 
 
    var myArray = []; 
 

 
    for (var i = 0; i < string.length; i++) { 
 
    myArray.push(string.charCodeAt([i])); 
 
    } 
 

 
    return String.fromCharCode(...myArray); 
 
    //return b; 
 
} 
 

 
console.log(rot13("SERR PBQR PNZC"));

0

只要使用myArray.toString();,應該轉換數組元素。

+0

我認爲重點是獲取char代碼,對它們進行一些操作,然後將新代碼轉換回字符串。 – Oriol

+0

@Oriol,只需在所有需要的操作完成時使用'toString()' –