Я пытаюсь создать Цезарь-шифр, я знаю, что это может быть не самый лучший или самый простой способ сделать это, но я создал рекурсивную функцию, которая циклически добавляет числа к каждому символу, чтобы изменить его на другой символ, но когда я запускаю свой код вместо того, чтобы получить символ в качестве ответа, я получаю неопределенное
'' '
const caesar = function(inputString, shiftNo) {
let outputString = "";
for (let i = 0; i < inputString.length; i++){
let unicodeCode = inputString.charCodeAt(i);
if ( unicodeCode <= 90 && unicodeCode >= 65 || unicodeCode <= 122 && unicodeCode >= 97){
outputString += recCounter(unicodeCode, shiftNo);
}
else{
outputString += inputString.charAt(i);
}
}
return outputString;
}
function recCounter(unicodeCode, shiftNo){
let shiftedUniCode = unicodeCode;
let substractedShiftNum = shiftNo;
if (shiftedUniCode === 123){
shiftedUniCode = 97;
}
else if (shiftedUniCode === 91){
shiftedUniCode = 65;
}
if (shiftNo === 0){
return String.fromCharCode(shiftedUniCode);
}
else {
recCounter(shiftedUniCode + 1, substractedShiftNum - 1);
}
}
' ''
Я попытался изменить параметры и как работает рекурсивная функция, но все, что я получаю, не определено, когда я запускаю свой код