Description
Description:
The current Caesar cipher implementation works correctly for both encryption and decryption, but there are opportunities for optimization and added functionality:
Optimization: The getCipherMap function unnecessarily clones the charsMap object in every iteration, which can be simplified by directly updating the existing object.
Robustness: There are no checks for invalid inputs, such as non-string data types or empty strings. Adding input validation will make the functions more reliable.
Preserve Case: The cipher converts all characters to lowercase, losing the original case. Enhancing the logic to preserve the case would improve usability.
Suggested Fix:
Optimize the reduce method by removing redundant cloning.
Add input validation checks.
Implement case-sensitive encryption and decryption.