Ahora estás retornando el valor de str, pero str es la cadena original solo la separase en un array
Ibas mas o menos bien con el código que tenías, lo que tenías que modificar un poco es “resultRot”,
también es “resultRot” lo que tienes que retornar.
Aunque tienes un problema con tu código la letra A no la convierte a N.
function rot13(str) {
const alphaNum = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '?', '!', '.', ' '];
str = str.split("");
let resultRot = ""
for (let i = 0; i < str.length; i++) {
let indexRes = [alphaNum.indexOf(str[i])];
let resInd = indexRes.map((num) => {
if (num >= 13 & num < 26) {
return num - 13;
}
if (num <= 13 && num >= 1) {
return num + 13;
}
if (num >= 26) {
return num;
}
});
const resultAlph = [];
for (let k = 0; k < resInd.length; k++) {
for (let h = 0; h < alphaNum.length; h++) {
if (resInd[k] === h) {
resultAlph.push(alphaNum[h]);
}
}
resultRot += resultAlph.join();
console.log(resultRot);
}
}
}
rot13("SERR PBQR PNZC");
Cuando añadas codigo usa el boton </>
y pega tu codigo entre las comillas triples