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

180
Vistas
¿Cómo unir cadenas en un bucle for en Javascript?

Estoy tratando de poner en mayúscula el primer carácter de cada palabra y unir todas las palabras en una sola cadena. Me las arreglé para poner en mayúscula el primer carácter de cada palabra, pero parece que no puedo hacer que .join() funcione en el resultado final

 function generateHashtag (str) { let split = str.split(' ') for(let i = 0; i < split.length; i++){ let finalResult = split[i].charAt(0).toUpperCase() + split[i].substring(1) console.log(finalResult.join('')) } } console.log(generateHashtag('Hello my name is')) should return ('HelloMyNameIs')
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Lograr esto por split es posible. primero cree una matriz de cadenas divididas (por el delimitador ' ') y luego recorra la matriz y escriba en mayúscula el primer carácter usando el método toUpperCase y concatene el resto de la cadena sin la primera letra usando slice

 function generateHashtag(str) { let split = str.split(' '); for (let i = 0; i < split.length; i++) { split[i] = split[i].charAt(0).toUpperCase() + split[i].slice(1); } return split.join(''); } console.log(generateHashtag('Hello my name is'));

Más información sobre split : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split

about 4 years ago · Juan Pablo Isaza Denunciar

0

puede hacer split[i] = split[i].charAt(0).toUpperCase() + split[i].substring(1) en el bucle y luego fuera del bucle hacer split.join('')

Básicamente, está reemplazando cada palabra ( split[i] ) con una palabra en mayúscula. Luego, al final, une las palabras.

about 4 years ago · Juan Pablo Isaza Denunciar

0

No necesita usar join en absoluto, simplemente declare e inicialice finalResult fuera del bucle y concatene cada palabra dentro del bucle:

 function generateHashtag(str) { const split = str.split(' '); // Array<String> let finalResult = ''; // String for(let i = 0; i < split.length; i++) { const titleCased = split[i].charAt(0).toUpperCase() + split[i].substring(1); finalResult += titleCased; } return finalResult; } console.log(generateHashtag('Hello my name is'));
  • Sin embargo, puede simplificar este código considerablemente usando un estilo de programación funcional (FP) con map y reduce . Vea abajo.
  • También cambié su código para usar toLocaleUpperCase en lugar de toUpperCase y uso [0] por brevedad.
  • Todavía es seguro usar substring(1) para cadenas de un solo carácter, simplemente devuelve '' .
 function generateHashtag(str) { return ( str .split(' ') .map( word => word[0].toLocaleUpperCase() + word.substring(1).toLocaleLowerCase() ) .reduce( ( word, concat ) => concat + word, "" ) ); }

  • Olvidé que join() todavía se puede usar en lugar de reduce (y de todos modos tendrá una implementación optimizada dentro del motor JS):
  • También moví la lógica de la función de map a una función con nombre toTitleCase .
 function generateHashtag(str) { const toTitleCase( word ) => word[0].toLocaleUpperCase() + word.substring(1).toLocaleLowerCase(); return ( str .split(' ') .map( word => toTitleCase( word ) ) // or just `.map( toTitleCase )` .join() ); }

La declaración de return tiene paréntesis para evitar la inserción automática no deseada de punto y coma que, de lo contrario, rompería la función.

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