Estaba haciendo este ejercicio de codewars: https://www.codewars.com/kata/58039f8efca342e4f0000023/train/javascript
Aquí las instrucciones:
Cree una función que tome una cadena como parámetro y haga lo siguiente, en este orden:
Reemplaza cada letra con la letra que le sigue en el alfabeto (vea la nota a continuación)
Convierte cualquier vocal en mayúscula
Hace que las consonantes sean minúsculas
Nota:
el alfabeto debe envolverse, por lo que Z se convierte en A en este kata, y no se considera una vocal. Entonces, por ejemplo, la cadena "Cat30" devolvería "dbU30" (Cat30 --> Dbu30 --> dbU30)
function changer(str) { // happy coding! let arr = str.split("") let newArr = []; let voRegEx = /[aeiouAEIOU]/g; let conRegEx = /[^aeiouAEIOU]/g; for(let i = 0; i < arr.length; i++) { if(arr[i] === "z" || arr[i] === "Z") { newArr.push("A"); } else if(arr[i].charCodeAt() >= 95 && arr[i].charCodeAt() <= 121 || arr[i].charCodeAt() >= 65 && arr[i].charCodeAt() <= 89) { let char = String.fromCharCode(arr[i].charCodeAt()+1); console.log(char) if(conRegEx.test(char)) { newArr.push(char.toLowerCase()); } if(voRegEx.test(char)) { newArr.push(char.toUpperCase()); } } else if(typeof(parseInt(arr[i])) === "number") newArr.push(arr[i]); } let newStr = newArr.join("") return newStr; } changer("Cat30"); Disculpe si es demasiado desordenado, soy nuevo en la codificación y aún no debo limpiar. Lo que pasa es que console.log(char) y me muestra las cadenas "D", "b", "u" pero parece que la "b" no se empuja a newArr pero si agrego 2 caracteres en lugar de 1 char ahora se empuja, como changer("Caat30"); ahora aparece la "b" y si agrego otro carácter, el siguiente no aparecerá, y el patrón se repite. Con mucho gusto agradeceré cualquier respuesta a mi problema. Saludo