Una cadena de texto (string) es una estructura de datos que representa una secuencia de caracteres, mientras que un arreglo (array) es una estructura de datos que contiene múltiples elementos o valores.
Sabías que una cadena de texto puede ser dividida y transformada en un arreglo de multiples cadenas de texto? En Javascript podemos hacer esto utilizando el método split
. Veamos como funciona con algunos ejemplos.
TL;DR
Si sólo estas buscando el código, aquí va:
const editor = 'free code camp'
editor.split(' ') // [ 'free', 'code', 'camp' ]
Sintaxis
De acuerdo con MDN, la sintaxis que necesitamos para dividir una cadena de texto es str.split([separador [, limite ]])
. Si lo aplicamos al ejemplo anterior:
str
es nuestra cadena de texto, la constanteeditor
separador
es' '
y será el valor tomado como punto de referencia para dividir las partes.- No existe un
limite
por lo tanto el arreglo tendrá tantos elementos como partes puedan resultar de la división (en este caso tres).
¿Cuándo necesitamos dividir una cadena de texto de esta manera?
Ejemplo 1: obteniendo una parte de la cadena de texto.
Aquí tenemos un ejemplo común que implica obtener un token desde un encabezado auth que es parte de un sistema de autenticación basado en token.
Si no tienes idea que significa eso, no hay problema. Todo lo que necesitas saber es que existe una cadena de texto con el valor bearer token
, pero sólo necesitamos token
(porque es la parte que identifica al usuario):
const authHeader = 'bearer token'
const split = authHeader.split(' ') // (1) [ 'bearer', 'token' ]
const token = split[1] // (2) token
Repasemos lo que ocurre en el código anterior:
- La cadena de texto es dividida utilizando
' '
como separador y las partes resultantes son almacenadas en un arreglo. - Accedemos a la segunda entrada de ese arreglo.
Ejemplo 2: aplicar métodos de arreglo a una cadena de texto
Muchas veces el dato que estamos manejando es del tipo cadena de texto, pero necesitamos aplicarle métodos de arreglo (por ejemplo map
, filter
, or reduce
).
Supongamos que tenemos una cadena de texto en código morse y queremos traducirlo:
const morse = '-.-. --- -.. .'
// (1)
const morseToChar = {
'-.-.': 'c',
'-..': 'd',
'.': 'e',
'---': 'o',
}
const ArregloMorse = morse.split(' ') // (2) [ '-.-.', '---', '-..', '.' ]
const arregloTexto = arregloMorse.map((char) => morseToChar[char]) // (3) [ 'c', 'o', 'd', 'e' ]
const texto = arregloTexto.join(") // (4)
Veamos que pasa con este código:
- Creamos un objeto literal para asignar los caracteres morse al alfabeto
- El código morse es dividido y transformado en un arreglo utilizando
' '
como separador.. (Sin' '
como argumento, terminaríamos con un arreglo conteniendo entradas separadas para cada.
y-
.) - El arreglo de código morse se asigna/ transforma en un arreglo de texto.
- Utilizamos el método
join()
para crear y devolver una nueva cadena de texto del arreglo, utilizando''
como separador. (Sin''
como argumento el resultado seríac,o,d,e
.)
Cómo añadir un límite al split
Como podemos ver en MDN, el método split
también puede recibir limite
como argumento limitando al número de elementos creados dentro del arreglo resultante. Nunca he necesitado hacer esto, pero veamos como aplicarlo:
const editor = 'free code camp'
editor.split(' ', 1) // [ 'free' ]
En este ejemplo el arreglo resultante sólo contiene el elemento 'free'
porque establecimos el límite de un elemento. Sin el argumento, el resultado del arreglo hubiese sido [ 'free', 'code', 'camp' ]
.
Antes de que te vayas…
Gracias por leer este artículo! Escribo sobre mis experiencias profesionales y educativas como desarrollador de software autodidacta, así que no dudes en visitar mi sitio web o suscribirse a mi boletín para obtener más contenido.
Traducido del artículo de David - JavaScript Split String Example – How to Split a String into an Array in JS