Javascript, parte 6: Arrays

Los arrays o arreglos, son tipos de datos que nos permiten trabajar con más de un valor.

Si nosotros quisiéramos guardar el nombre de una persona tendríamos que usar un string:

let nombre = "María";

Si quisiéramos guardar el nombre de otra persona, tendríamos que crear otro string:

let nombre2 = "Pedro";

Los arrays nos dan la posibilidad de tener varios valores en una misma variable/constante:

let nombres = ["María", "Pedro", "Marta", "Ricardo"];

Como podemos ver en el ejemplo, para indicar que es un array, debemos usar los corchetes, y separar los valores con coma: [valor, valor, valor]

¿Qué podemos guardar en un array?

Como pudimos ver anteriormente podemos guardar cadenas de texto (string), pero no es el único tipo de dato. También podemos guardar números o booleans:

let numeros = [25, 50, 75, 100];
let booleans = [true, false, true, false];

Incluso también podríamos mezlcar valores de distinto tipo:

let arreglo = ["Juanito", 30, true];

Acceder a una posición de un array

Para acceder a la posición de un array debemos llamar al array y entre corchetes indicar el número de la misma. Sin embargo, hay que tener en cuenta que todas las posiciones de un array empiezan en 0 (cero):

let nombres = ["María", "Pedro", "Marta", "Ricardo"];
let primero = nombres[0];
console.log("El primer nombre de la lista es: " + primero);

Es decir que «María» debe accederse con el sub índice cero. «Pedro» sería el índice uno, «Marta» el dos y el último, es decir «Ricardo», la posición tres.

let nombres = ["María", "Pedro", "Marta", "Ricardo"];
let ultimo = nombres[3];
console.log("El último nombre de la lista es: " + ultimo);

¿Cómo recorrer la lista completa de un array?

Para acceder a todas las posiciones de un array podríamos simplemente escribir sus índices y mostrar así sus valores:

let nombres = ["María", "Pedro", "Marta", "Ricardo"];
console.log(nombres[0]);
console.log(nombres[1]);
console.log(nombres[2]);
console.log(nombres[3]);

El problema de esto, es que en la mayoría de los casos no vamos a saber cuántas posiciones tiene un array y además cómo vimos en una publicación pasada, cuando tenemos que repetir un bloque de código debemos usar un ciclo de repetición.

let nombres = ["María", "Pedro", "Marta", "Ricardo"];
for(let i = 0; i < 4; i++){
    console.log(nombres[i]);
}

El índice comenzará con el valor 0, que es la primer posición de un array. Por otro lado la condición de corte será que el índice sea menor a 4, que son la cantidad de posiciones que tiene el array, por tanto la última será 3: 0, 1, 2, 3 (4 posiciones)

Sin embargo, como dijimos anteriormente, en muchos casos no sabremos la cantidad de posiciones de un array. Si la cantidad de nombres fuesen 5, la última posición no se mostraría, porque la condición corta antes del cuatro.

Para solucionar este problema, podemos usar algo llamado propiedad. Las propiedades nos devuelven información de un dato. Por ejemplo a través de la propiedad length podemos saber la cantidad de posiciones de un array:

let nombres = ["María", "Pedro", "Marta", "Ricardo", "Patricia"];
let cantidad = nombres.length;
console.log("La cantidad de nombres es: " + cantidad);

Teniendo en cuenta esto podemos volver a repetir todo el proceso incluyendo todos los nombres, aunque no sepamos la cantidad de posiciones:

let nombres = ["María", "Pedro", "Marta", "Ricardo", "Patricia"];
for(let i = 0; i < nombres.length; i++){
    console.log(nombres[i]);
}

Agregar posiciones nuevas a un array

Al igual que las propiedades, los arrays también tienen algo llamado métodos. Estos nos permiten realizar procesos como hacen las funciones.

Hay un método llamado push(), el cual agregará una posición nueva a un array:

let frutas = ["Manzana", "Banana", "Pera", "Naranja"];
frutas.push("Mandarina");

Arrays multidimensionales

En la posición de un array podemos guardar cualquier tipo de dato, ya sea cadenas de texto, números o valores lógicos. Incluso también podríamos guardar arrays, a esto último se le conoce como array multidimensional o matriz:

let juegos = [
    [
        "Dark souls", 
        "Dark souls 2", 
        "Dark souls 3", 
        "Elden ring"
    ],
    [
        "Assassin's creed 2", 
        "Assassin's creed Origins", 
        "Assassin's creed Valhalla"
    ],
    [
        "The Legend of Zelda: Breath of the Wild",
        "The Legend of Zelda: Tears of the Kingdom",
    ]
];

Como podemos ver en el ejemplo cada posición de este array será otro array.

Entonces si nosotros por ejemplo quisiéramos acceder a la posición de «Elden ring», primero debemos saber que ésta se encuentra en el primer array, es decir la posición 0 (cero) y dentro de éste también debemos saber qué posición ocupa dentro, es decir la 3:

let juego = juegos[0][3];
console.log(juego);

También podemos recorrer este array, pero en este caso debemos usar un for dentro de un for:

for(let i = 0; i < juegos.length; i++){
    console.log("Saga posición " + i + ": ");
    for(let i_j = 0; i_j < juegos[i].length; i_j++){
        console.log(juegos[i][i_j]);
    }
    console.log("--------------------------");
}