%) operator and the ternary operator (?) to calculate the correct encryption/decryption key....) and Array.prototype.map() to iterate over the letters of the given string.String.prototype.charCodeAt() and String.fromCharCode() to convert each letter appropriately, ignoring special characters, spaces etc.Array.prototype.join() to combine all the letters into a string.true to the last parameter, decrypt, to decrypt an encrypted string.const caesarCipher = (str, shift, decrypt = false) => { const s = decrypt ? (26 - shift) % 26 : shift; const n = s > 0 ? s : 26 + (s % 26); return [...str] .map((l, i) => { const c = str.charCodeAt(i); if (c >= 65 && c <= 90) return String.fromCharCode(((c - 65 + n) % 26) + 65); if (c >= 97 && c <= 122) return String.fromCharCode(((c - 97 + n) % 26) + 97); return l; }) .join(''); };
caesarCipher('Hello World!', -3); // 'Ebiil Tloia!'
caesarCipher('Ebiil Tloia!', 23, true); // 'Hello World!'Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️