Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Procesamiento de cadenas mediante la conversión a arrays JS: Arrays

En muchas entrevistas técnicas piden resolver problemas que prueben tu habilidad para manipular strings y arrays. Uno de los problemas más comunes es:

Dada una cadena de texto, escribir una función que capitalice la primera letra de cada palabra.

Por ejemplo:

const text = 'hello códica';
capitalizeWords(text); // 'Hello Códica'

Existen varias formas de resolverlo, pero en este caso exploraremos una solución utilizando arrays. Veamos cómo funciona.


Paso 1: Dividir la cadena en palabras

Para empezar, queremos separar el texto en palabras individuales. Para ello, usamos el método split(), que nos permite dividir una cadena en un array de partes, especificando un delimitador. En este caso, usaremos un espacio (' ') como delimitador:

const capitalizeWords = (sentence) => {
  // Definimos el separador, que en este caso es un espacio
  const separator = ' ';
  // Dividimos la cadena en palabras
  const words = sentence.split(separator);
  console.log(words); // ['hello', 'códica']
};

Esto convierte la cadena 'hello códica' en un array ['hello', 'códica'], donde cada elemento representa una palabra.


Paso 2: Capitalizar cada palabra

Ahora que tenemos las palabras separadas, necesitamos convertir la primera letra de cada palabra en mayúscula. Como JavaScript no tiene un método directo para esto en strings, crearemos una función capitalize():

const capitalize = (text) =>
  (text.length === 0) ? text : `${text[0].toUpperCase()}${text.slice(1)}`;

¿Cómo funciona?

  • text[0].toUpperCase() convierte la primera letra en mayúscula.
  • text.slice(1) obtiene el resto de la palabra sin modificarlo.
  • Si la cadena es vacía (text.length === 0), simplemente la devolvemos como está, para evitar errores.

Ahora aplicamos esta función a cada palabra en nuestro array:

const capitalizeWords = (sentence) => {
  const separator = ' ';
  const words = sentence.split(separator);

  // Creamos un nuevo array con las palabras capitalizadas
  const capitalizedWords = [];
  for (const word of words) {
    capitalizedWords.push(capitalize(word));
  }

  // Unimos las palabras capitalizadas nuevamente con espacios
  return capitalizedWords.join(separator);
};

console.log(capitalizeWords('hello códica')); // 'Hello Códica'

Paso 3: Unir el array en una cadena

El último paso es la operación inversa a split(). Ahora, con join(' '), reunimos nuevamente las palabras en una sola cadena, separadas por espacios.

return capitalizedWords.join(separator);

Esto nos da la cadena final con cada palabra correctamente capitalizada.


Nota sobre la mutabilidad de words

Al observar nuestro código, notarás que no modificamos el array words directamente, sino que creamos un nuevo array capitalizedWords. Esto tiene una ventaja importante: facilita la depuración. Si algo sale mal, siempre podemos inspeccionar words y capitalizedWords por separado, sin alterar los datos originales.

Si hubiéramos modificado words directamente, perderíamos la referencia a la versión original, lo que haría más difícil detectar errores.


Resumen

  • Dividimos la cadena en un array de palabras usando split().
  • Creamos una función capitalize() para convertir la primera letra de cada palabra en mayúscula.
  • Recorremos el array aplicando capitalize() a cada palabra.
  • Volvemos a unir el array en una cadena con join(' ').
  • Evitamos modificar el array original, lo que facilita depuración y mantenimiento.

Esta es solo una de las muchas formas de resolver el problema. En otros cursos, exploraremos métodos alternativos, como el uso de expresiones regulares.


Materiales adicionales

  1. Función words / Lodash.
  2. Función capitalize / Lodash.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY