Aprogramar con JavaScript - 59 Recorrer una matriz con un bucle for anidado
Vložit
- čas přidán 6. 09. 2024
- En este tutorial de JavaScript, aprenderás cómo recorrer una matriz utilizando un bucle for anidado. Exploraremos cómo utilizar bucles for anidados para iterar eficientemente a través de los elementos de una matriz multidimensional. Te guiaré paso a paso en la sintaxis y la lógica de los bucles for anidados, y te mostraré cómo acceder a cada elemento de la matriz durante la iteración. Además, te proporcionaré consejos prácticos para trabajar con matrices de diferentes dimensiones y cómo realizar operaciones específicas en cada elemento. Con ejemplos claros y explicaciones detalladas, dominarás la técnica de recorrer matrices con bucles for anidados en JavaScript. ¡No te pierdas este video y mejora tus habilidades de programación con matrices en JavaScript!
Si les gusto el video por favor me dejan un like, si aun no se suscribieron es un buen momento, recuerden compartir con quienes les pueda interesar y dejarme sus dudas o preguntas bajo el video, muchas gracias.
JavaScript, bucle for anidado, matriz, recorrer matriz, iterar elementos, programación, desarrollo web, tutorial, ejemplos prácticos, sintaxis, matrices multidimensionales, manipulación de matrices, buenas prácticas, aprendizaje de JavaScript, bucle for anidado en JavaScript, estructuras de control en JavaScript, lenguaje de programación.
Lista de reproducción del curso completo gratuito de JS
czcams.com/play/PLpJ0pHgIwPoHeOw6_yRERfEF5pXjyAIcK.html
Muchas gracias por el repaso :D
Me encanto la ultima frase sobre que no hay que grabarse en piedra la sintaxis y puedes servirte de el IDE para corregir, con la practica no tendrás tantos errores, usted es lo maximo!!
Muy buena explicación y muy buenos consejos, gracias profe
Espectacular como explicas. Te encontré buscando la explicación del forEach porque siguiendo un curso de Javascript en otro canal empezó a usar el forEach totalmente sacado de la galera (no lo había explicado), y ahora me quedé mirando todo tu curso (arranqué del primer video y me sirvió mucho como repaso y para reforzar conceptos). Deberías tener muchas más reproducciones. Ahora lo miro hasta el final.
muchas gracias por todos tus videos son lo mejor 😊😊😊
Muy buen video y muy bien explicado muchas gracias
Super sencilla y clara la explicación. Gracias profe.
Muy bien explicado profe !!!
Superbien explicado!! Muchas gracias. Se ha entendido muy bien.
Excelente explicación !!
explicas muy bien y se entiende aun si no sabes mucho como yo...muchas gracias!!!
Profe que salvada usted no sabe la cantidad q he leido y los videos q he mirado y hasta ahora pude entender esto gracias de corazon
Muy buena eplicacion. me suscribo para seguir aprendiendo. Gracias!!
hola capo, exelente video, buscando info tengo que decir que de todos los que vi hasta ahora sos de los que mejor lo explico.
tambien estoy comenzando y el tema de los bucles anidados cuesta entenderlo (cuando estas aprendiendo desde 0)
te puedo consultar. estoy con un ejercicio que es encontrar el numero que mas se repite de un array, creo que se le llama encontrar la MODA en estadística jaja ya me googlee tanto para entenderlo que llegue a ver estadistica descriptiva xd
si bien buscando me encontre con muchos tipos soluciones, pero a mi me interesa entenderlo con puro JS (vanilla) a puro FOR comun, iterando
y tratar de ver como es que captura el numero mas frecuente (MODA)
un ejemplo:
array[2,3,2,3,3,2,3,4,4]
aca el numero que mas se repite es el 3, (solo busco que muestre EL NUMERO que mas se repite)
vi muchas soluciones en donde por lo general tienen el error de mostrar EL ULTIMO numero que mas se repite ( por ej en el array de arriba muestran el 4 )
o casi todos los ejemplos muestran todos los numeros repetidos
si podes hacer un video explicando eso seria un golazo
Hace poco comencé a estudiar JS y me había atorado bastante con este tema, pero gracias a este video pude comprenderlo muchísimo mejor , muchas gracias por compartir tu conocimiento a toda la comunidad.
Tremendo, hace unos dias vi por primera vez los arrays, me mencionaron esto de recorrerlos de diferente formas y a la primera que lo vi me quedo clarísimo, muy buena explicación
Gracias, buenísimo que pude aportar algo.
Explicación perfecta, gracias
Se entiende perfectamente. Un saludo y muchas gracias.
Gracias!!
Imposible explicar mejor maestro. Me encanta !!
Muchisimas gracias, la verdad este tema lo habia visto en otros ejercicios y aun y copiando codigo no sé porque no funcionaba, ahora que lo entiendo puedo seguir. Este curso es oro y gratis, de verdad muchas gracias
muy bueno
Gracias.
Excelente explicacion Dr , muchas gracias por su aporte a la comunidad de programadores.
Gracias Luis, lamentablemente hasta marzo no podre retomar los cursos.
ufff gracias por la info
Espectacular!! Me sirvio muchisimo, fuiste el que mejor explico el tema :)
Gracias, saludos
Excelente explicación, amigo. Muchas gracias. Me suscribo.
Gracias a ti por suscribirte y seguirme.
Muy buena explicación, gracias.
Excelente explicación! Estoy aprendiendo a programar y esto me estaba costando un huevo, ahora lo entendí perfectamente. Te ganaste un sub.
Hola excelente explicación! Muy buen aporte. Tengo duda si en vez de tener solo arrays de números tengo objetos, se puede usar esta técnica? Lo que quiero es buscar coincidencias clave: valor entre dos objetos donde cada uno tiene un array de objetos anidados y que me retorne el objeto anidado donde se encontró la coincidencia. Muchas gracias.
Si lo aprenderás más adelante, todo a su tiempo.
Buenísimo! ! Tenes el link o falta que lo subas? Muchas gracias.
Excelente video, la verdad este tema me mareaba bastante, te hago una consulta, como haces o que extension usas para que VSCode te muestre al lado del console.log lo que te devuelve la consola?
Extension Quoka se explica en los primeros videos. no recuerdo en cual. Saludos
con un .map tambien se puede?
Hola Marcos, está muy bueno e interesante el video. Sólo que lo vi dos veces porque hay algo que no me quedó claro y te lo quería consultar a ver si me cierra la idea.
Te paso a comentar cómo lo entiendo yo al código y, luego, voy al punto donde me quedó la duda:
En el primer for index = 0, y recupera el objeto [1,2,3]
Entra al for anidado, x = 0, se cumple la condición y recupera el "1"; vuelve al mismo for anidado, ahora x = 1, se cumple la condición y recupera el "2"; vuelve al mismo for anidado, ahora x = 2, se cumple la condición y recupera el "3"; vuelve al mismo for anidado, ahora x = 3, NO se cumple la condición y se sale del for anidado.
Vuelve al for principal, ahora index = 1, y recupera el objeto [4,5,6]
Entra al for anidado Y ACÁ ES DONDE ME COMPLIQUÉ: ¿El valor de x = 0? ¿Por qué? Si en el primer for, cuando se terminó el for anidado, x terminó valiendo 3. ¿O acaso se REINICIA el valor de x = 0 (del for anidado) cuando la condición NO se cumple y se sale del for?
Espero que halla quedado clara mi pregunta, traté de explicarla lo mejor posible.
Muchas gracias, de antemano, por tomarte la molestia de explicarme la duda.
Saludos!
Te estas marinado porque solo ves X, pero no es X, es X e Y, yo el ejemplo creo que lo hice con fila y columna, creo que le puse fila al primer for y al segundo x. Lo podes ver como una tabla de excel con filas y columnas, el primer bucle controla las filas, el segundo las columnas o celdas, osea cuando entre en la primer fila se encuentra con un objeto (el primer Array a analizar), supongamos la fila 0 [1,2,3], dentro de la fila 0 es trabajo del segundo bucle recorrer cada columna o celda como le quieras decir, osea (el primer dato del array, luego el segundo y el tercero) cuando termines, salta a la otra fila:
fila 0 --> / celda 0 / celda 1 / celda 2 TERMINO, salta a la segunda fila
fila 1 --> / celda 0 / celda 1 / celda 2 TERMINO, salta a la tercera fila
fila 2 --> / celda 0 / celda 1 / celda 2 TERMINO, sale del bucle.
Fila representa OBJETOS COMPLETOS en este caso ARRAY [ ... ]
Celda representa LOS DATOS dentro de cada array, osea VALORES. 1 2 3 4 5 6 7 8 9
for (let fila = 0; fila < miArray.length; fila ++) {
for (let celda = 0; celda < fila.length; celda ++) {
console.log (fila[celda]);
}
}
@@AprogramarConMarcos Hola Marcos, muchas gracias por responder. En realidad lo de fila y columna lo entendí bien. La "x" a la que me refiero es a la variable local que tiene el for anidado "let x = 0" (que por convenio, se pone "j"), y a la variable local "index" del for original.
Entonces, la variable local de un for ¿Reinicia a su valor al valor original cuando se sale del ciclo? Es acá donde me había colgado, no en cómo opera el primer for y el for anidado. Concretamente, en la variable del for anidado me había quedado tildado, ya que al salir del tercer ciclo (del for anidado) y entra al for original, y vuelve al for anidado, el valor de la variable vuelve a valer 0 y se ejecuta el código imprimiendo cada índice del segundo objeto. Pero recordar que cuando se termina el tercer ciclo del for anidado, la variable local termina valiendo 3 y por eso se sale del ciclo por no cumplirse la condición.
Espero que esta vez me halla explicado mejor, quizás la primera vez no me expliqué bien, o quizás hubo confusión porque la variable local del for anidado se llamaba "x" .
@@Pablo-io2js Si tenes razon por convenio suele ser i y j, si entendiste el proceso entonces date cuenta que cada for anidado arranca poniendo en 0 la variable x.
Podes verlo con un console.log (x) dentro del bucle anidado, veras que el resultado es 012, 012, 012 y sera asi por cada objeto que detecte el primer bucle for si todos los arrays tienen 3 elementos como en el ejemplo.
Espero que ahora si, quede todo claro. Te lo muestro aqui abajo con las variables i y j como deberia haber ser por ley.
Seria asi, espero se entienda:
Fila i 0 - [1,2,3]
Celda j 012 - 1 2 3
Fila i 1 - [4,5,6]
Celda j 012 - 4 5 6
Fila i 2 - [7,8,9]
Celda j 012 - 7 8 9
Saludos, decime si ahora se entendió.
@@AprogramarConMarcos Creo que si, creo que lo entendí de esta manera (corregime si me equivoco): la variable "j" del for anidado, la cuál vale 0 porque ese valor se lo puse arbitrariamente, incrementa su valor en 1 en cada ciclo del for anidado mientras se cumpla la condición. Cuando la condición NO se cumpla, se sale del bucle for anidado y se REINICIA a 0 el valor de "j" (o sea, a su valor original) porque las variables LOCALES son variables temporales que se crean cuando comienza a ejecutarse el método y se destruyen cuando termina de ejecutarse. De otro modo, si no fuese así, en el segundo ciclo del 1er for, cuando vuelve a entrar al for anidado, "j" valdría 3 y no se ejecutaría el código porque no cumple la condición, y sólo imprimiría, del for anidado, 1, 2, 3.
Recorres pero sólo una matriz cuadrada
Lo que no entendí es si la variable fila es necesaria o solo era para ejemplificar y hacer mas entendible la explicación
Si en lugar de let fila = miArray[index] y debajo for (let x = 0; < fila.length; x++ ) {
console.log(fila[x]);
Se usa simplemente for (let x = 0; < miArray[index].length; x++ ) {
console.log(fila[x]); ????
He intentado en el codigo y no funciona, y es lo que no entiendo, se supone que let fila es igual a miArray[index], entonces en lugar de (let x = 0; < fila.length; x++ ) por que no se puede usar (let x = 0; < miArray[index].length; x++ )
A ver si algun hero me resuelve la duda
Me respondo a mi mismo en caso de que alguien llegue a tener la misma duda XD
La solución si no se crea una variable para guardar los elementos de i [ ] cuando i vale 0 (o 1 o 2), es simplemente poner en el segundo for, en el console.log elementos de i [ ] con j [-,-,-]
for (let j = 0; j < array[i].length; j++) {
console.log(array [ i ] [ j ]) 1,2,3,4,5,6,7,8,9
}
Sabrás que no subí más material, es que lamentablemente como dije muchas veces el que un canal de CZcams funcione depende del comportamiento de los usuarios, la empresa no mira lo que yo hago, registra lo que ustedes hacen y reconocido por muchos usuarios no entienden como los videos tienen tan pocas reproducciones, likes, etc.
Se que muchos de ustedes realmente se preocupan e intentan dar una mano para hacer crecer el canal, pero está claro que no es suficiente.
Por tal motivo decidí cambiar el modo de hacer las cosas, les propongo darles acceso a mi nube de One Drive privada donde tengo mucho material e iré subiendo muchísimo más (contrate un tera), tanto material que no les alcanzara una vida para estudiar y aprender lo que necesiten.
Les solicito una donación voluntaria de al menos 13 euros, dicho acceso será hasta Julio del 2025, casi un año, ósea 1 euro al mes.
Los interesados me pueden escribir por privado a mi correo: aprogramar@outlook.com
No les estoy vendiendo nada, saben que mis cursos son libres y gratuitos, les pido una donación para que ustedes me ayuden a mí y como agradecimiento les doy acceso a material mío y otro que juntado a lo largo de los años, podrán descargarse mis cursos y verlos sin propagandas las veces que necesiten y muchísimo más. La idea es que en un futuro los cursos simplemente los suba a la nube y los comparta con quien realmente los aprecia.
Buen video. Lo unico los carteles que pones en la.edicion desvian un poco la atencion.