String.fromCharCode 没有结果 javaScript
String.fromCharCode gives no result javaScript
在 运行 代码之后,我在 window 中没有得到任何结果。我找不到问题
结果必须是从 charCode 创建的字符串。
function rot13(str) {
var te = [];
var i = 0;
var a = 0;
var newte = [];
while (i < str.length) {
te[i] = str.charCodeAt(i);
i++;
}
while (a != te.length) {
if (te[a] < 65) {
newte[a] = te[a] + 13;
} else
newte[a] = te[a];
a++;
}
var mystring = String.fromCharCode(newte);
return mystring;
}
// Change the inputs below to test
rot13("SERR PBQR PNZC");
方法 String.fromCharCode
希望您将每个数字作为单独的参数传递。在您的代码示例中,您将数组作为单个参数传递,这是行不通的。
尝试使用 apply()
方法,它允许您传递一个数组,并将其转换为多个单独的参数:
var mystring = String.fromCharCode.apply(null, newte);
看起来 String.fromCharCode()
未定义为对数组进行操作。
这样试试:
function rot13(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i) + 1;
if (charCode < 65) {
charCode += 13;
}
result += String.fromCharCode(charCode);
}
return result;
}
// Change the inputs below to test
console.log(rot13("SERR PBQR PNZC"));
注意: 我复制了你的字符替换逻辑,但是 it doesn't seem correct.
在 运行 代码之后,我在 window 中没有得到任何结果。我找不到问题 结果必须是从 charCode 创建的字符串。
function rot13(str) {
var te = [];
var i = 0;
var a = 0;
var newte = [];
while (i < str.length) {
te[i] = str.charCodeAt(i);
i++;
}
while (a != te.length) {
if (te[a] < 65) {
newte[a] = te[a] + 13;
} else
newte[a] = te[a];
a++;
}
var mystring = String.fromCharCode(newte);
return mystring;
}
// Change the inputs below to test
rot13("SERR PBQR PNZC");
方法 String.fromCharCode
希望您将每个数字作为单独的参数传递。在您的代码示例中,您将数组作为单个参数传递,这是行不通的。
尝试使用 apply()
方法,它允许您传递一个数组,并将其转换为多个单独的参数:
var mystring = String.fromCharCode.apply(null, newte);
看起来 String.fromCharCode()
未定义为对数组进行操作。
这样试试:
function rot13(str) {
var result = "";
for (var i = 0; i < str.length; i++) {
var charCode = str.charCodeAt(i) + 1;
if (charCode < 65) {
charCode += 13;
}
result += String.fromCharCode(charCode);
}
return result;
}
// Change the inputs below to test
console.log(rot13("SERR PBQR PNZC"));
注意: 我复制了你的字符替换逻辑,但是 it doesn't seem correct.