freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../basic-algorithm-scripting/title-case-a-sentence/index.md

8.1 KiB

title localeTitle
Title Case a Sentence Título Caso una oración

:triangular_flag_on_post: Recuerda usar Read-Search-Ask si te atascas. Tratar de emparejar el programa :busts_in_silhouette: y escribe tu propio código :pencil:

:checkered_flag: Explicación del problema:

Tenemos que devolver una frase con el título del caso. Esto significa que la primera letra siempre estará en mayúsculas y el resto en minúsculas.

Enlaces relevantes

:speech_balloon: Sugerencia: 1

  • Debes comenzar dividiendo la cadena en una matriz de palabras.
  • Dividir la frase.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 2

  • Debe hacer que la palabra sea minúscula antes de hacer la primera letra en mayúscula.
  • Use el método de reemplazo en cada palabra para poner en mayúscula la primera letra de cada palabra.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 3

  • Necesitará crear una nueva cadena con partes de la anterior y al final fusionar todo en una sola cadena de nuevo.
  • En el método de reemplazo, indique el primer argumento como la posición de la primera letra utilizando charAt. Para el segundo argumento, escriba una función para devolver la letra mayúscula como reemplazo.

intenta resolver el problema ahora

¡Alerta de spoiler!

señal de advertencia

¡Solución por delante!

:beginner: Solución de código básico:

String.prototype.replaceAt = function(index, character) { 
    return this.substr(0, index) + character + this.substr(index+character.length); 
 }; 
 
 function titleCase(str) { 
    var newTitle = str.split(' '); 
    var updatedTitle = []; 
    for (var st in newTitle) { 
        updatedTitle[st] = newTitle[st].toLowerCase().replaceAt(0, newTitle[st].charAt(0).toUpperCase()); 
    } 
    return updatedTitle.join(' '); 
 } 

:rocket: Ejecutar código

Explicación del código:

Estamos modificando la función replaceAt utilizando un prototipo para facilitar el uso del programa.

Divida la cadena por espacios en blanco y cree una variable para rastrear el título actualizado. Luego usamos un bucle para convertir el primer carácter de la palabra en mayúsculas y el resto en minúsculas. al crear una cadena concatenada compuesta de la palabra completa en minúsculas con el primer carácter reemplazado por su mayúscula.

Enlaces relevantes

:sunflower: Solución de código intermedio:

function titleCase(str) { 
  var convertToArray = str.toLowerCase().split(" "); 
  var result = convertToArray.map(function(val){ 
      return val.replace(val.charAt(0), val.charAt(0).toUpperCase()); 
  }); 
  return result.join(" "); 
 } 
 
 titleCase("I'm a little tea pot"); 

:rocket: Ejecutar código

Explicación del código:

Estamos haciendo una cadena entera en minúsculas y luego la convertimos en una matriz. Luego estamos usando la función de mapa para reemplazar el carácter en minúscula con mayúscula. Finalmente, estamos devolviendo la cadena usando el método de join .

Enlaces relevantes

:rotating_light: Solución avanzada de código:

function titleCase(str) { 
  return str.toLowerCase().replace(/(^|\s)\S/g, (L) => L.toUpperCase()); 
 } 

:rocket: Ejecutar código

Explicación del código:

La solución funciona primero escribiendo en minúsculas todos los caracteres de la cadena y, a continuación, solo subiendo en mayúsculas el primer carácter de cada palabra.

  • Minúsculas en toda la cadena usando str.toLowerCase() .

  • Reemplace el primer carácter de cada palabra en mayúsculas usando .replace .

  • Busque el carácter al principio de cada palabra, es decir, que coincida con cualquier carácter que siga un space o que coincida con el primer carácter de toda la cadena, utilizando el siguiente patrón.

  • Explicación de Regex:

  • Buscar todos los caracteres que no sean espacios en blanco (\S )

  • Al comienzo de la cuerda (^)

  • O después de cualquier carácter de espacio en blanco (\s)

    • El modificador g busca otro patrón de palabra similar en toda la cadena y los reemplaza.

    • Esta solución funciona con símbolos nacionales y letras acentuadas, como se ilustra en los siguientes ejemplos.
      international characters: 'бабушка курит трубку' // -> 'Бабушка Курит Трубку'
      accented characters: 'località àtilacol' // -> 'Località Àtilacol'

Enlaces relevantes

:clipboard: NOTAS PARA LAS CONTRIBUCIONES:

  • :warning: NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
  • Agregue una explicación de su solución.
  • Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada . :traffic_light:
  • Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( :warning: NO elimine ningún nombre de usuario existente )

Ver :point_right: Wiki Challenge Solution Template para referencia.