基本上我在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 回答
您可以通过将字符串拆分为空字符串将字符串转换为单个字母数组:
然后您可以使用例如.map()将每个字母更改为已解码的字母: