Crear y Acceder a Elementos de Arreglos
🛠️ Creando Arreglos
Ahora que sabemos qué son los arreglos, veamos cómo podemos crearlos en JavaScript.
1. Arreglos Literales (La forma más común)
La manera recomendada es usar corchetes []
y separar los elementos con comas ,
:
// Un arreglo vacíolet tareasPendientes = [];
// Un arreglo de númeroslet numerosFavoritos = [7, 13, 42];
// Un arreglo de stringslet coloresPrimarios = ["Rojo", "Verde", "Azul"];
// Un arreglo mixtolet misCosasFavoritas = ["Fido", 3, "Perro", true];
2. Con el constructor new Array()
También podemos usar la palabra clave new Array()
. Sin embargo, tiene algunos comportamientos que pueden ser confusos, por lo que generalmente se prefiere la forma literal []
.
// Crear un arreglo con elementoslet frutas = new Array("Manzana", "Banana", "Naranja");// Equivale a:// let frutas = ["Manzana", "Banana", "Naranja"];
Si pasamos un solo número, crea un arreglo vacío con esa longitud
let arregloVacioLargo = new Array(5);// Crea [ , , , , ] (un arreglo con 5 espacios vacíos)
console.log(arregloVacioLargo.length); // Muestra 5console.log(arregloVacioLargo[0]); // Muestra undefined
⚠️ Por la confusión que puede generar new Array(numero)
, es mejor usar []
para crear arreglos.
🔍 Accediendo a Elementos
Una vez que tenemos un arreglo, ¿cómo obtenemos un valor específico?
Usamos el índice del elemento. ¿Recuerdas la analogía de los casilleros? Se numeran empezando por el 0.
Para acceder a un elemento, escribimos el nombre del arreglo seguido de corchetes []
con el número del índice dentro.
let herramientas = ["Martillo", "Destornillador", "Llave inglesa", "Sierra"];
// Acceder al primer elementoconsole.log(herramientas[0]); // Muestra "Martillo"
// Acceder al tercer elementoconsole.log(herramientas[2]); // Muestra "Llave inglesa"
¿Qué pasa si intento acceder a un índice que no existe?
Si intentas usar un índice que está fuera de los límites del arreglo (mayor o igual a su longitud, o negativo), JavaScript devolverá undefined
.
console.log(herramientas[4]); // Muestra undefined (no hay elemento en el índice 4)console.log(herramientas[-1]); // Muestra undefined (los índices negativos no funcionan así por defecto)
✏️ Modificando Elementos
Podemos cambiar el valor de un elemento existente de la misma forma que accedemos a él, usando el operador de asignación =
.
let calificaciones = [7, 8, 5];console.log(calificaciones[2]); // Muestra 5
// Cambiamos la calificación en el índice 2calificaciones[2] = 9;
console.log(calificaciones[2]); // Muestra 9console.log(calificaciones); // Muestra [7, 8, 9]
Si asignamos un valor a un índice que está más allá del final del arreglo, JavaScript agrandará el arreglo y llenará los espacios intermedios con undefined
(o valores vacíos llamados empty slots).
let numeros = [10, 20];numeros[3] = 40; // Asignamos al índice 3console.log(numeros); // Muestra [10, 20, <1 empty item>, 40]console.log(numeros[2]); // Muestra undefinedconsole.log(numeros.length); // Muestra 4
Esto puede llevar a errores, ¡así que ten cuidado!
☝️🤓
🏋️♂️ Ejercicio
- Crea un arreglo llamado
planetas
que contenga los nombres de los planetas del sistema solar en orden desde el Sol. - Muestra por consola el nombre del tercer planeta.
- Muestra por consola el nombre del último planeta.
- Crea una variable llamada
planetaFavorito
y asígnale el valor del quinto planeta del arreglo. - Muestra la variable
planetaFavorito
por consola.
🏋️♂️ Ejercicio
- Crea un arreglo llamado
inventario
con los siguientes strings:"Manzanas"
,"Plátanos"
,"Naranjas"
. - Cambia el segundo elemento
(Plátanos) por
"Fresas"
. - Muestra el arreglo completo por consola para verificar el cambio.
- Intenta mostrar por consola el elemento en el índice 1
- ¿Qué resultado obtienes y por qué?
🚀 Extra
Investiga sobre:
- ¿Qué son los “empty slots” o “agujeros” (holes) en los arreglos de JavaScript y por qué es mejor evitarlos?
- ¿Puedes tener un arreglo dentro de otro arreglo? ¿Cómo accederías a un elemento del arreglo interno?
- ¿Hay alguna forma de acceder al último elemento de un arreglo sin saber su longitud exacta de antemano? (Pista: método
.at()
)