Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

344
Vistas
Invierta cada palabra con mayúsculas sin cambiar de palabra

¿Cómo invierto cada mayúscula y minúscula ("Soy un gran humano") a ("I ma A Taerg namuh")? Este es el código que tengo:

 function wordsReverse(str) { let words = []; words = str.match(/\S+./g); let result = ""; for (let i = 0; i < words.length; i++){ result += words[i].split('').reverse().join('') + " "; } return result; } console.log(wordsReverse("I am A Great human")); // Logs "I ma A taerG namuh"

En lugar de obtener "I ma A taerG namuh"

Estoy buscando esto: "I ma A Taerg namuh"

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Una forma sería rastrear los índices de los caracteres en mayúsculas en la palabra original y, al invertir la palabra, usar esos valores de índice anteriores para poner en mayúsculas el carácter.

Si el índice no coincide con un carácter previamente en mayúsculas, siempre devuélvalo en minúsculas (incluso si ya está en minúsculas, esto no tendrá ningún efecto).

 function wordReverse(str) { let reversed = []; let words = str.split(" "); for (let word of words) { // Calculate which indices in the word are uppercase, // storing in an object for faster lookups let uppercaseIndices = word.split("").reduce((acc, char, i) => { if (/[AZ]/.test(char)) { acc[i] = true; } return acc; }, {}); let newWord = word .split("") .reverse() .map((char, i) => { if (uppercaseIndices[i]) { return char.toUpperCase(); } else { return char.toLowerCase(); } }) .join(""); reversed.push(newWord); } return reversed.join(" "); } console.log(wordReverse("I am A Great human"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

 function wordsReverse(str) { let indexes = []; let words = str.split(" "); let result = ""; // reverse passed string words.forEach((e) => { result += e.split("").reverse().join("") + " "; }); // get indexes of uppercase letters passed in function str.split("").forEach((e, i) => { if (e === e.toUpperCase() && e !== " ") { indexes.push(i); } }); // lowercase whole string result = result.trim().toLowerCase().split(""); // uppercase letters accordingly to indexes we get from index array result.forEach((e, i) => { if (indexes.includes(i)) { result.splice(i, 1, e.toUpperCase()); } }); return result.join(""); } console.log(wordsReverse("I am A Great human"));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede dividir la cadena en palabras y probar cada una con Array#map y también dividir cada palabra en letras y probar cada letra usando Array#map como en esta demostración rápida:

 const wordsReverse = str => str.split(' ').map( word => word.split('').reverse() .map( (letter, i, arr) => arr[arr.length - i - 1].toUpperCase() === arr[arr.length - i - 1] ? letter.toUpperCase() : arr[arr.length - i - 1].toLowerCase() === arr[arr.length - i - 1] ? letter.toLowerCase() : letter ) .join('') ) .join(' '); console.log(wordsReverse("I am A Great human")); //OUTPUT: I ma A Taerg namuh

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda