odin-default-js-exercises/caesar/caesar.js

21 lines
505 B
JavaScript

const caesar = function(string, shift) {
return string
.split("")
.map(char => shiftChar(char, shift))
.join("");
};
let codeSets = code => (code < 97 ? 65 : 97);
let mode = (m, n) => (m % n + n) % n;
let shiftChar =(char, shift) => {
let code = char.charCodeAt();
if((code >= 65 && code <= 90) || (code >= 97 && code <= 122)){
return String.fromCharCode(mode(code + shift - codeSets(code), 26) + codeSets(code));
}
return char;
};
module.exports = caesar