运行代码后,我的窗口没有结果。我无法找到问题 结果必须是从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");
&#13;
答案 0 :(得分:0)
方法String.fromCharCode
希望您将每个数字作为单个参数传递。在您的代码示例中,您将一个数组作为单个参数传递,这不会起作用。
尝试使用apply()
方法,这将允许您传递数组,并将其转换为多个单独的参数:
var mystring = String.fromCharCode.apply(null, newte);
答案 1 :(得分:0)
看起来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"));
&#13;
注意:我复制了字符替换的逻辑,但是it doesn't seem correct。