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

320
Vistas
(Javascript) Poner cada segunda palabra en una oración en mayúscula

Como dice el título, necesito hacer una función que haga que cada segunda palabra en una oración esté en mayúscula, pero no toque otras palabras. Tengo esta función: (La primera si es en un caso solo hay una palabra)

Y hace su trabajo, sin embargo, con una oración como esta "ESTA ES UNA ORACIÓN" devuelve "ESTA ES UNA ORACIÓN", mientras que necesito "ESTA ES UNA ORACIÓN".

 function largeLetters(sentence) { return sentence.map((v, i) => i % 2 == 0 ? v.toLowerCase() : v.toUpperCase()).join(' '); } function sentenceToUpperCase(sentence) { sentence = sentence.split(' '); if (sentence.length == 1) { sentence = sentence.toString().toUpperCase(); return sentence; } else { return largeLetters(sentence) }; }; console.log(sentenceToUpperCase("ThIs iS A seNteNCe"))

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

0

He simplificado un poco tu programa.

El problema estaba en esta parte:

i % 2 == 0 ? word.toLowerCase() : word.toUpperCase()

no necesita cambiar todas las demás palabras a minúsculas, simplemente déjelo como está:

i % 2 == 0 ? word : word.toUpperCase()

 function sentenceToUpperCase(sentence) { return sentence .split(' ') .map((word, i) => i % 2 == 0 ? word : word.toUpperCase()) .join(' '); }; console.log(sentenceToUpperCase("ThIs")) console.log(sentenceToUpperCase("ThIs iS")) console.log(sentenceToUpperCase("ThIs iS A")) console.log(sentenceToUpperCase("ThIs iS A seNteNCe"))

about 4 years ago · Juan Pablo Isaza Denunciar

0

Cuando tu dices

eso pondría cada segunda palabra en una oración en mayúscula

Si quiere decir 'valor par', use el value % 2 === 0 ; de lo contrario, simplemente cambie el segundo valor de su matriz.

Actualizar incluso palabras:

 function sentenceToUpperCase(sentence) { const words = sentence.split(' '); if(words.length >= 2) { return words.map((v,i) => i % 2 === 0 ? v : v.toUpperCase()).join(' '); } else { return sentence.toUpperCase(); } }

Actualizar solo la segunda palabra:

 function sentenceToUpperCase(sentence) { const words = sentence.split(' '); if(words.length >= 2) { words[1] = words[1].toUpperCase(); } else { return sentence.toUpperCase(); } return words.join(' '); }

Puedes 'minificarlo' usando un ternario y un mapa

 function sentenceToUpperCaseMinify(sentence) { const words = sentence.split(' '); return words.length >= 2 ? words.map((v, i) => i === 1 ? v.toUpperCase() : v).join(' ') : sentence.toUpperCase(); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Buena pregunta y en JS tienes muchas formas de hacerlo. Las funciones que he usado son: minúsculas, dividir, mayúsculas, unir. Envolví en una función.

 const str = "this IS a SENTENCE" function build(str) { const s = str.split(' '); // or use (str.toLowerCase()).split(' ') if every odd word have to be lowercase let r = []; let i = 0; s.forEach((e) => { if (i % 2 === 0) { r.push(e) } else { r.push(e.toUpperCase()) } i++; }) return r.join(' '); } console.log('new Sentense: ', build(str) );

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