如何在数组上使用.charCodeAt?

时间:2017-09-11 10:16:50

标签: javascript

我知道我可以使用apply方法,但我无法理解如何使用它,即括号内的内容。我已经尝试过阅读文章甚至观看一些YT视频,但最终还是感到困惑。

我在这里尝试做的是使用charCodeAt将以下字符串转换为unicode,然后我必须为每个值添加13,因为我使用的是ROT13密码。之后,我计划使用fromCharCode将数值返回到字母中以获取消息,然后使用.join来获取完整的消息。

function rot13(str) {

  var strSplit = str.split('');
  strSplit.charCodeAt.apply();

}


rot13("SERR PBQR PNZC");

2 个答案:

答案 0 :(得分:1)

使用数组函数:

function rot13(str) {
  var strSplit = str.split('');
  var res = strSplit.map(l => l.charCodeAt())
  return res;
}


console.log(rot13("SERR PBQR PNZC"));

您可能希望将这些数字连接在一起作为字符串:

console.log(rot13("SERR PBQR PNZC").map(l => JSON.stringify(l)).join(""))

然而,这可能有一些警告......

答案 1 :(得分:0)

数组没有charCodeAt方法。

您可以在执行拆分后遍历所有字符

试试这个



function rot13(str) 
{
  return str.split('').map(function(item) {
    return String.fromCharCode(item.charCodeAt(0) + 13)
  }).join("")
}

console.log( rot13("SERR PBQR PNZC") );




更通用



function rot(str, num) 
{
  return str.split('').map(function(item) {
    return String.fromCharCode(item.charCodeAt(0) + num)
  }).join("")
}

console.log( rot("SERR PBQR PNZC", 13) );