8.1 KiB
title | localeTitle |
---|---|
Title Case a Sentence | Título Caso una oración |
Recuerda usar Read-Search-Ask
si te atascas. Tratar de emparejar el programa y escribe tu propio código
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
- Objeto de cadena global
- JS String Prototype ToLowerCase
- JS String Prototype ToUpperCase
- JS String Prototype Replace
Sugerencia: 1
- Debes comenzar dividiendo la cadena en una matriz de palabras.
- Dividir la frase.
intenta resolver el problema ahora
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
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!
¡Solución por delante!
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(' ');
}
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
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");
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
Solución avanzada de código:
function titleCase(str) {
return str.toLowerCase().replace(/(^|\s)\S/g, (L) => L.toUpperCase());
}
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
NOTAS PARA LAS CONTRIBUCIONES:
- 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 .
- Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( NO elimine ningún nombre de usuario existente )
Ver
Wiki Challenge Solution Template
para referencia.