Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

314
Views
(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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!