JavaScript Algorithms and Data Structures Projects - Caesars Cipher

Tell us what’s happening:
So I have completed this challenge, my question is any idea how I could avoid hard coding the special chars?
I guess I could use regex but how can I implement it?
thanks.

Your code so far

function rot13(str) {
  const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('')
  let result = "";
  let dictionary = {
    'A': 0,
    'B': 1,
    'C': 2,
    'D': 3,
    'E': 4,
    'F': 5,
    'G': 6,
    'H': 7,
    'I': 8,
    'J': 9,
    'K': 10,
    'L': 11,
    'M': 12,
    'N': 13,
    'O': 14,
    'P': 15,
    'Q': 16,
    'R': 17,
    'S': 18,
    'T': 19,
    'U': 20,
    'V': 21,
    'W': 22,
    'X': 23,
    'Y': 24,
    'Z': 25,
  }


  for (let i = 0; i < str.length; i++) {
    if (dictionary[str[i]] >= 13) {
      let lookUpKey = dictionary[str[i]] - 13;
      result += alphabet[lookUpKey];
    }
    else if (dictionary[str[i]] < 13) {
      let lookUpKey = dictionary[str[i]] + 13;
      result += alphabet[lookUpKey];
    }
    else if (str[i] === " ") {
      result += " ";
    }
    else if (str[i] === '?') {
      result += '?';
    }
    else if (str[i] === '!') {
      result += '!';
    }
    else if (str[i] === '.') {
      result += '.';
    }
  }
  return result.toUpperCase();

}


rot13("SERR PBQR PNZC");

let regex = /[\s!?.]/g
   else if (regex.test(str[i])) {
     result += str[i]
   }

P.S. I have tried adding the code above to my solution but it didn’t do exactly what I wanted it to do.

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36

Challenge: JavaScript Algorithms and Data Structures Projects - Caesars Cipher

Link to the challenge:

Google something called an ASCII table and then google up how to get the ASCII value of any character in JavaScript.

I’ll check it out, thanks

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.