Caeser Cipher JavaScript

Я думаю, что я близок к тому, чтобы понять это.

Цель состоит в том, чтобы взять строку "зашифрованных" символов и расшифровать их до реальных слов. Возможно, мой код не очень элегантный прямо сейчас, я доберусь до него, но я МОГУ получить начало 'str = "SERR PBQR PNZC" ", чтобы вернуть правильный код ASCII, используя charCodeAt(), добавляя или вычитая 13 по мере необходимости, и объединить это в strArray- я знаю, это не массив. Но я не могу заставить strArray стать массивом, поэтому я могу передать его в String.fromCharCode(null, strArray); чтобы он вернул правильный расшифрованный текст.

Мой код ниже:

function rot13(str) { // LBH QVQ VG!

var strArray = '';

//var right = [70, 82, 69, 69, 32, 67, 79, 68, 69, 32, 67, 65, 77, 80];
//used above variable with String.fromCharCode.apply(null, right); and it worked.

for(var i = 0; i < str.length; i++){
 //console.log(str.charCodeAt(i));
  if(str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) {
    strArray = strArray.concat(str.charCodeAt(i) + 13, ' ');
  } else if(str.charCodeAt(i) >= 78) {
    strArray = strArray.concat(str.charCodeAt(i) - 13, ' ');
  } else {
    strArray = strArray.concat(str.charCodeAt(i), ' ');
  }
 }
 return strArray;
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");

Любая помощь будет оценена.

1 ответ

Итак, ниже возвращается правильная строка, за исключением места в конце; что не позволяет мне завершить вызов.

function rot13(str) { // LBH QVQ VG!

  var strArray = '';

  for(var i = 0; i < str.length; i++){
    //console.log(str.charCodeAt(i));
    if(str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 77) {
      strArray = strArray.concat(str.charCodeAt(i) + 13, ' ');
    } else if(str.charCodeAt(i) >= 78) {
      strArray = strArray.concat(str.charCodeAt(i) - 13, ' ');
    } else {
      strArray = strArray.concat(str.charCodeAt(i), ' ');
    }

  }
  var correct = strArray.split(' ');
  console.log(correct);
  return String.fromCharCode.apply(null, correct);
}

// Change the inputs below to test
rot13("SERR PBQR PNZC");
Другие вопросы по тегам