Crear y Acceder a Elementos de Arreglos
La Propiedad length
📏 ¿Cuántos Elementos Hay?
Todos los arreglos en JavaScript tienen una propiedad especial llamada length
.
La palabra length
viene del inglés, que significa largo o longitud
Esta propiedad nos dice cuántos elementos contiene el arreglo en ese momento.
Sólo debemos poner un punto frente al arreglo .
y luego la palabra length
.
let misNumeros = [5, 10, 15, 20];console.log(misNumeros.length); // Muestra 4
let ingredientesPizza = ["Masa", "Tomate", "Queso"];console.log(ingredientesPizza.length); // Muestra 3
let arregloVacio = [];console.log(arregloVacio.length); // Muestra 0
430
✨ Se Actualiza Automáticamente
Se actualiza sola cada vez que agregamos o quitamos elementos del arreglo usando los métodos apropiados (que veremos más adelante, como push
, pop
, splice
, etc.).
let amigos = ["Ana", "Luis"];console.log(amigos.length); // Muestra 2
// Agregamos un amigo (usando un método que pronto aprenderás)amigos[2] = "Carlos";
console.log(amigos); // Muestra ["Ana", "Luis", "Carlos"]console.log(amigos.length); // Muestra 3 (¡se actualizó!)
⏭️ Cómo Acceder al Último Elemento Usando length
Sabemos que los índices para acceder al contenido de un arreglo empiezan desde 0
, ya que length
nos devuelve el conteo total en “formato humano”, el índice del último elemento en “formato arreglo” siempre será length - 1
.
let episodios = ["El Despertar", "Secretos Ocultos", "La Traición", "El Final"];
let ultimoEpisodio = episodios[episodios.length - 1];console.log(ultimoEpisodio);
El Final
Esta es una forma muy común de obtener el último elemento, especialmente cuando no sabemos cuántos elementos tendrá el arreglo.
JavaScript moderno introdujo el método .at(-1)
que es una forma más directa
y legible de obtener el último elemento
⚠️ Modificando length
Directamente
También podemos asignar un valor a la propiedad length
. Esto modifica el arreglo de formas que pueden ser útiles, pero también peligrosas si no se entienden bien.
Acortando un Arreglo
Si asignas a length
un número menor que la cantidad actual de elementos, el arreglo se truncará, eliminando los elementos del final.
let letras = ["a", "b", "c", "d", "e"];console.log(letras.length); // Muestra 5
letras.length = 3; // Asignamos un valor menor
console.log(letras); // Muestra ['a', 'b', 'c']console.log(letras.length); // Muestra 3
Esta es una forma rápida de eliminar elementos del final.
Agrandando un Arreglo
Si asignas a length
un número mayor que la cantidad actual de elementos, el arreglo se agrandará, pero los nuevos espacios se llenarán con “empty slots” o “agujeros”, que se comportan de forma similar a undefined
pero no son exactamente lo mismo.
let items = [100, 200];console.log(items.length); // Muestra 2
items.length = 5; // Asignamos un valor mayor
console.log(items); // Muestra [100, 200, <3 empty items>]console.log(items.length); // Muestra 5console.log(items[2]); // Muestra undefined
Crear arreglos con “empty slots” (agujeros) generalmente no es recomendable. Puede hacer que algunos métodos de arreglo se comporten de forma inesperada.
🧹 Vaciar un Arreglo
Una forma rápida de eliminar todos los elementos de un arreglo es asignar 0
a su propiedad length
.
let listaTareas = ["Lavar ropa", "Comprar pan", "Estudiar JS"];console.log(listaTareas.length); // Muestra 3
listaTareas.length = 0; // ¡Arreglo vaciado!
console.log(listaTareas); // Muestra []console.log(listaTareas.length); // Muestra 0
☝️🤓
🏋️♂️ Ejercicio
- Crea un arreglo llamado
frutas
con 5 nombres de frutas. - Muestra por consola cuántas frutas hay en el arreglo usando
length
. - Usando
length
, muestra por consola la última fruta del arreglo. - Ahora, cambia el
length
del arreglo a2
. - Muestra el arreglo
frutas
por consola. ¿Qué frutas quedaron?
🏋️♂️ Ejercicio
Dado el siguiente arreglo: let valores = [10, true, "Hola", null, 50];
- ¿Cuál es el valor de
valores.length
? - ¿Cuál es el índice del elemento
null
? - Escribe el código para acceder al elemento
"Hola"
usando la propiedadlength
(sin usar directamente el índice2
). - ¿Qué pasaría si hiciéramos
valores.length = 10
? Describe cómo quedaría el arreglo.
🚀 Extra
Investiga sobre:
- El método
.at()
para acceder a elementos. ¿Cómo usaríasmiArreglo.at(-1)
y qué ventaja tiene sobremiArreglo[miArreglo.length - 1]
? - ¿Cuál es la diferencia exacta entre un elemento
undefined
y un “empty slot” en un arreglo? - ¿Qué otros métodos existen para vaciar un arreglo además de
miArreglo.length = 0
?