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.