Estoy tratando de escribir una función para resolver el cifrado césar. Ya escribí el programa en python y la respuesta que obtuve me pareció correcta. Pero cuando traté de convertir el algoritmo a javascript, el valor devuelto por la función siempre tiene "indefinido" al final (a pesar de agregar un comando de retorno a la función). Revisé problemas similares enumerados en el desbordamiento de pila, pero ninguno parecía coincidir con el mío. Cualquier ayuda será apreciada. Gracias por adelantado.
const alphabet = ["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"]; function rot13(str) { var ans = "" for (let i=0; i<=str.length; i++){ if (alphabet.includes(str[i])){ if (alphabet.indexOf(str[i])<alphabet.length/2){ ans += alphabet[alphabet.indexOf(str[i]) + 13] } else{ ans += alphabet[13 - (alphabet.length - alphabet.indexOf(str[i]))]} } else{ ans += str[i] } } return ans }