我编写了一个函数,可以将字符串转换为uni代码值数组。现在我想要一种将这个数组转换回字符串的方法。我正在使用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(myArray);
return b;
}
rot13("SERR PBQR PNZC");
我什么都没回来?
(稍后我计划在数组中为每个uni代码添加13)
答案 0 :(得分: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"));
答案 1 :(得分: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
方法提供一组值作为参数。
答案 2 :(得分: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"));
答案 3 :(得分:0)
只需使用myArray.toString();
,它就应该转换数组元素。