String.fromCharCode没有给出结果javaScript

时间:2016-10-20 01:03:45

标签: javascript fromcharcode

运行代码后,我的窗口没有结果。我无法找到问题 结果必须是从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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

方法String.fromCharCode希望您将每个数字作为单个参数传递。在您的代码示例中,您将一个数组作为单个参数传递,这不会起作用。

尝试使用apply()方法,这将允许您传递数组,并将其转换为多个单独的参数:

var mystring = String.fromCharCode.apply(null, newte);

答案 1 :(得分:0)

看起来String.fromCharCode()未定义为对阵列进行操作。

试试这样:

&#13;
&#13;
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;
&#13;
&#13;

注意:我复制了字符替换的逻辑,但是it doesn't seem correct