将单代码值数组转换为字符串

时间:2016-11-20 18:23:50

标签: javascript

我编写了一个函数,可以将字符串转换为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)

4 个答案:

答案 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();,它就应该转换数组元素。