1 | initial version |
Here's one possible implementation:
function caesarCipher(str, shift) {
let result = "";
for (let i = 0; i < str.length; i++) {
let code = str.charCodeAt(i);
if (code >= 65 && code <= 90) { // uppercase
result += String.fromCharCode(((code - 65 + shift) % 26) + 65);
} else if (code >= 97 && code <= 122) { // lowercase
result += String.fromCharCode(((code - 97 + shift) % 26) + 97);
} else { // special character or space
result += str.charAt(i);
}
}
return result;
}
console.log(caesarCipher("Hello, World!", 3)); // "Khoor, Zruog!"
This implementation uses a loop to iterate through each character in the input string. For alphabetic characters (uppercase and lowercase), it shifts the character by the specified amount shift
using modular arithmetic to wrap around the alphabet. For special characters and spaces, it simply adds them to the result without any encryption. The String.fromCharCode
and str.charCodeAt
functions are used to convert between characters and their ASCII codes.