首页 文章

在JavaScript中将子数组的值传递给CharCodeAt

提问于
浏览
1

基本上我在FreeCodeCamp上工作coding challenge . 挑战的开始提到了这一点......

一种常见的现代用途是ROT13密码,其中字母的值移动了13个位置 . 因此'A'''N','B'''O'等等 . 编写一个函数,它将ROT13编码的字符串作为输入并返回一个已解码的字符串 .

到目前为止,我已将字符串传递给数组,字符串的每个部分都在其自己的数组(子数组)中 . 从那里我想我将使用循环遍历字符串中的每个字符(在每个子数组中)并将CharCodeAt方法传递给每个字符 .

我的问题在于将每个角色传递给CharCodeAt .

这是总功能的一部分,如下所示:

对我来说这是有道理的,因为我正在传递变量中的每个子数组值

var foo = container[i][k];


// var output = container.map(function mapHandler(){foo.charCodeAt(k)});



function rot13(str){ 
   var container,  j = 0;
    while(j <= str.length - 1){
       container = str.split(' ');
       j++;
    }

  for(var i = 0; i < container.length; i++){

  for(var k = 0; k < container[i].length; k++){
           var foo = container[i][k];

           var map = Array.prototype.map;
           var output = map.call(foo, function(x){ return x.charCodeAt(k);});

           // var output = container.map(function mapHandler(){foo.charCodeAt(k)});
           // output.charCodeAt(k);

   }

}

    return output;

}

rot13("SERR PBQR PNZC") should decode to "FREE CODE CAMP"

任何人都可以帮助达到这一点吗?我不想要整个解决方案!

提前致谢!

1 回答

  • 0

    您可以通过将字符串拆分为空字符串将字符串转换为单个字母数组:

    var arr = str.split("")
    

    然后您可以使用例如.map()将每个字母更改为已解码的字母:

    var decoded = arr.map(x=> {
      // decode x
    })
    

相关问题