Necesito que esto funcione sin Hard-Coding (str), sino que lo proporcione el sitio real. ¿Es posible? Sí, entiendo que mi pedido es inusual, sin embargo, funciona jajaja. Gracias por cualquier ayuda que pueda recibir. Con esta función necesito recibir una cadena de trabajos y devolver el siguiente incremento de la letra ex(a=b, b=c, e=f). También devuelve las vocales en mayúsculas. entrada: "hola 3" Salida: Ifmmp 3
entrada: "¡tiempos divertidos!" salida: gvO Ujnft!
let str = ['f', 'u', 'n', ' ', '', 'i', 'm', 'e', 's', '!', 'n', 'n']; function replaceLetter(letter) { ///above is fixed and cannot be edited return letter.replace(/([a-zA-Z])[^a-zA-Z]*$/, function (nextLetter) { var letter = nextLetter.charCodeAt(0); switch (letter) { case 90: return 'A'; case 122: return 'a'; default: return String.fromCharCode(++letter); } }); } var vowels = 'aeiou'; let emptyStr = []; let finalStr = ''; let holder = ''; for (const i of str) { [emptyStr.push(replaceLetter(i))].join().replaceAll(',', ''); } for (let i = 0; i < emptyStr.length; i++) { if (vowels.indexOf(emptyStr[i]) >= 0) { finalStr += emptyStr[i].toUpperCase(); } else { finalStr += emptyStr[i]; } } console.log(finalStr);``` var vowels = "aeiou"; let received_str = "hello"; // the dynamic string you'll recieve function replaceLetters(string) { ///above is fixed and cannot be edited let finalStr = ""; let str = [...string]; str.forEach((element) => { let nextLetter = element.replace(/([a-zA-Z])[^a-zA-Z]*$/, function ( nextLetter ) { var letter = nextLetter.charCodeAt(0); switch (letter) { case 90: return "A"; case 122: return "a"; default: return String.fromCharCode(++letter); } }); if (nextLetter !== ",") { if (vowels.indexOf(nextLetter) >= 0) { finalStr += nextLetter.toUpperCase(); } else { finalStr += nextLetter; } } }); return finalStr; } console.log(replaceLetters(received_str));