这就是挑战: Caesars Cipher - 字母移动了 13 个位置。因此'A' ↔ 'N'、'Q' ↔ 'D' 等等。
将 ROT13 编码字符串作为输入并返回解码字符串的函数。所有字母都将大写。不要转换任何非字母字符(即空格、标点符号),但要传递它们。
*我得到了正确的输出,但目前,每个字母都是一个字符串。有没有办法将所有单独的字母组合成一个句子 *
function rot13(str) {
var original = str.split('')
var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split('')
let i = 0;
while(i<original.length){
let indexVal = alphabet.indexOf(original[i])
if(indexVal>= 13){
indexVal -=13
}else if(indexVal===-1){
indexVal = 33
}
else{
indexVal += 13
}
var final = alphabet[indexVal]
i++;
console.log(final)
}
}
rot13("SERR CVMMN");//should log FREE PIZZA
/*
currently logs:
F
R
E
E
undefined
P
I
Z
Z
A
undefined
*/