2017-11-22 2 views
0

Ich versuche, den Code unten zu bekommen, um die Unicode in eine Zeichenfolge zu konvertieren, aber kein Glück, bitte helfen?Wie kann ich eine Variable in String.fromCharCode() verwenden?

function rot13(str) { 
 
    var message = ""; 
 
    for (var i = 0; i < str.length; i++) { 
 
    message += str.charCodeAt(i) + " "; 
 
    } 
 
    message = message.split(" ").filter(Boolean).join(","); 
 
    return String.fromCharCode(message); 
 
} 
 
console.log(rot13("Hello World"))

+1

fromCharCode ("1,1,1,1") ist nicht dasselbe wie von CharCode (1,1,1,1) – epascarello

+0

@epascarello was ist, wenn ich es ein arr gemacht habe Ja? – ajhernandez95

+0

@ ajhernandez95 ein Array ist auch keine Nummer. 'String.fromCharCode()' benötigt mehrere Argumente, von denen jeder ein einzelner charCode ist. – Thomas

Antwort

2

fromCharCode("1,1,1,1") ist nicht das Gleiche wie fromCharCode(1,1,1,1) Sie benötigen apply mit einem Array zu verwenden.

function rot13(str) { 
 
    var message = ""; 
 
    for (var i = 0; i < str.length; i++) { 
 
    message += str.charCodeAt(i) + " "; 
 
    } 
 
    message = message.split(" ").filter(Boolean); 
 
    return String.fromCharCode.apply(String, message); 
 
} 
 
console.log(rot13("Hello World"))

+0

Wie funktioniert die .apply genau? – ajhernandez95

+1

Haben Sie den MDN-Link gelesen? – epascarello

+0

oh sorry habe ich nicht gesehen, danke. – ajhernandez95

0

Sie wollen etwas wie folgt aus: http://buildingonmud.blogspot.com/2009/06/convert-string-to-unicode-in-javascript.html

function toUnicode(theString) { 
 
    var unicodeString = ''; 
 

 
    for (var i = 0; i < theString.length; i++) { 
 
    var theUnicode = theString.charCodeAt(i).toString(16).toUpperCase(); 
 

 
    while (theUnicode.length < 4) { 
 
     theUnicode = '0' + theUnicode; 
 
    } 
 

 
    theUnicode = '\\u' + theUnicode; 
 
    unicodeString += theUnicode; 
 
    } 
 

 
    return unicodeString; 
 
} 
 

 
console.log(toUnicode("Hello World"));

Verwandte Themen