viernes, 20 de septiembre de 2024

■ Recorrido

■ Recorrido del arreglo

Solo se necesita un for que pase por todas las posiciones del arreglo, por ejemplo:

var numeros = [1, 2, 3, 4, 5]

for (var i=0; i < numeros.length; i++) {
    console.log(numeros[i])
}


■ Recorrido de la matriz

Para recorrer una matriz se necesitan dos ciclos for, uno que recorra los elementos de la matriz, es decir, los arreglos almacenados en ella; y otro que por cada uno de ellos recorra sus elementos internos, esto es así:

for (var i=0; i < matriz.length; i++) {
    for (var j=0; j < matriz[i].length; j++) {
        console.log(matriz[i][j])
    }
}

Donde el primer for va recorrer los arreglos internos, y el segundo for recorrerá los elementos de cada arreglo.

La condición del primer for "i < matriz.length" le indica el tamaño de la matriz, es decir, el número de elementos que tiene, o sea, los arreglos internos.

La condición del segundo for "< matriz[i].length", se refiere al tamaño del arreglo interno de la posición "i" de la matriz, por lo que aunque tengan diferentes tamaños con "length" siempre sabremos su longitud.

Y en el console.log las posiciones i y j se refieren a las filas (arreglos) y columnas (cada elemento del arreglo), algo así:

console.log(matriz[arreglo][elemento])

Sabiendo lo anterior y teniendo la siguiente matriz:

var matriz = [
    [1, 2, 3],
    ["amarillo", "azul", "rojo"],
    [truefalse],
    [1, "azul", false, 3.14]
}

Si lo que quiero es solo imprimir los arreglos internos, lo haría así:

for (var i=0; i < matriz.length; i++) {
    for (var j=0; j < matriz[i].length; j++) {
        console.log(matriz[i]) // Solo le indico la posición del arreglo
    }
}

Esto imprimirá:
    [1, 2, 3]
    ["amarillo", "azul", "rojo"]
    [truefalse]
    [1, "azul", false, 3.14]

Y si lo que quiero es imprimir cada elemento de cada arreglo, sería así:

for (var i=0; i < matriz.length; i++) {
    for (var j=0; j < matriz[i].length; j++) {
        console.log(matriz[i][j]) // Se indica posición del arreglo y elemento
    }
}

Esto imprimirá:
    1
    2
    3
    amarillo
    azul
    rojo
    true
    false
    1
    azul
    false
    3.14

No hay comentarios:

Publicar un comentario