Contenido del curso
Primeros Pasos
- 5

¡Hola Mundo!
06:13 min - 6

Anatomía de una variable
09:23 min - 7

Tipos de datos: Mutabilidad e inmutabilidad
10:55 min - 8

Paso por valor
11:06 min - 9

Paso por referencia
07:00 min - 10

Creación de strings
11:33 min - 11

Concatenación de strings
08:31 min - 12

Manipulación de strings
12:13 min - 13

Tipo de dato primitivo: number
09:30 min - 14

Conversión a Booleanos
05:08 min - 15

Tipos de datos primitivos: null, undefined, symbol y bigint
07:28 min - 16

Conversión de tipos: Type Casting y Coercion
04:38 min - 17

Conversión de tipos explícita e implícita
12:20 min - 18

Proyecto: Crea un perfil para redes sociales con JavaScript
07:23 min
Funciones y This
- 19

Anatomía de una función
11:39 min - 20

Preguntas a Desarrolladores Senior: ¿Por qué aprender Desarrollo Web?
02:11 min - 21

Funciones vs Métodos
10:01 min - 22

Funciones puras e impuras
11:22 min - 23

Identificador this
11:38 min - 24

Métodos bind, call y apply
10:09 min - 25

Funciones flecha y enlace léxico
10:31 min - 26

Implicaciones de duplicar código
03:19 min - 27

Funciones constructoras
10:41 min - 28

10 Tipos de funciones
01:39 min - 29

Objeto window y modo estricto
07:37 min - 30

Tipos de binding
01:11 min - 31

Expresiones vs Sentencias
04:02 min - 32

Proyecto: Crea biografías de personajes con JavaScript
12:51 min
Lógica y ciclos
- 33

Operadores de comparación
06:12 min - 34

Operadores lógicos
04:33 min - 35

Ejecución condicional: if
07:45 min - 36

Proyecto: Adivina el número
09:36 min - 37

Ejecución condicional: ternario
05:24 min - 38

Ejecución condicional: switch
12:08 min - 39

Loop: for
07:31 min - 40

Loop: forEach
03:57 min - 41

Loop: for of
04:26 min - 42

Loop: for in
07:38 min - 43

Loop: while
03:56 min - 44

Loop: do while
03:13 min - 45

Proyecto: Juego adivina la palabra
15:56 min
Fundamentos de arrays y modificación
- 46

Introducción a Arrays
09:09 min - 47

Mutabilidad e inmutabiliad de Arrays
07:56 min - 48

Modificación básica del final con push(), pop()
04:33 min - 49

Ejercicio: Stack de libros
16:03 min - 50

Modificación del principio con shift(), unshift()
10:21 min - 51

Modificación avanzada con splice(), reverse(), sort(), fill()
16:37 min - 52

Proyecto: Juego de cartas
15:37 min - 53

Preguntas a Desarrolladores Senior: Estrategias y métodos de estudio
01:10 min
Iteración de Arrays
- 54

Iteración con map() y forEach()
12:53 min - 55

Filtrado y reducción con filter() y reduce()
11:34 min - 56

Ejercicio: Calificación promedio aprobatoria
05:27 min - 57

Búsqueda de elementos con find() y findIndex()
03:52 min - 58

Ejercicio: Encuentra al ganador de una rifa
11:21 min - 59

Proyecto: Análisis de transacciones
10:55 min - 60

Proyecto: Análisis de transacciones parte 2
08:01 min
Métodos específicos y Operaciones
- 61

Unir y entrelazar con concat(), spread operator y join()
12:05 min - 62

Verificación y evaluación con every() y some()
05:15 min - 63

Métodos de búsqueda con includes(), indexOf() y lastIndexOf()
07:05 min - 64

Ejercicio: Encontrando los índices
11:09 min - 65

Crear copias con slice()
05:28 min - 66

Spread operator: casos de uso
07:11 min
Arrays multidimencionales
Clases y Objetos
- 71

Anatomia de un Objeto
06:48 min - 72

Trabajando con objetos
12:52 min - 73

Función constructora
14:31 min - 74

¿Qué es una clase?
06:17 min - 75

Prototipos y herencias
02:15 min - 76

Herencia en la práctica
15:38 min - 77

Prototipos en la práctica
10:42 min - 78

this en JavaScript
05:36 min - 79

Proyecto: Crea una red social
12:25 min - 80

Proyecto: Crea una red social parte 2
09:00 min
Introducción a Arrays Bidimensionales
Resumen
Trabajar con estructuras de datos que van más allá de una simple lista es fundamental para resolver problemas complejos en programación. Los arrays bidimensionales permiten organizar información en filas y columnas, simulando el comportamiento de una matriz matemática. A continuación se explican las formas de crearlos, cómo acceder a sus valores y las operaciones más útiles que podemos aplicar sobre ellos.
¿Qué diferencia hay entre un array unidimensional y uno bidimensional?
Un array unidimensional es una lista plana de elementos dispuestos en una sola fila [0:30]. Por ejemplo: [1, 2, 3] tiene tres columnas y una única fila.
Un array bidimensional agrega una segunda dimensión: ahora existen múltiples filas, cada una con sus propias columnas [1:05]. En JavaScript se representa como un array que contiene otros arrays internos:
js const array2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Para mayor claridad visual, podemos escribirlo en forma de matriz [1:35]:
js const matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
De esta manera se distinguen con facilidad la primera, segunda y tercera fila, así como cada columna dentro de ellas.
¿Cómo asignar y acceder a valores en una matriz?
Para modificar un valor se indica la fila y la columna, ambas comenzando desde cero [2:10]. Si queremos reemplazar el 6 por un 10:
- Las filas se cuentan: fila
0, fila1. - Las columnas se cuentan: columna
0, columna1, columna2.
js matrix[1][2] = 10; console.log(matrix); // [[1, 2, 3], [4, 5, 10], [7, 8, 9]]
Para consultar un valor específico, utilizamos la misma notación de corchetes dobles [3:05]:
js const value = matrix[0][1]; console.log(value); // 2
El primer índice selecciona la fila y el segundo la columna.
¿Qué operaciones comunes se aplican sobre arrays bidimensionales?
¿Cómo recorrer toda la matriz con un doble for?
Un solo ciclo for recorre únicamente las filas como bloques completos. Para ingresar a cada columna dentro de cada fila necesitamos dos ciclos anidados [3:50]:
js for (let i = 0; i < matrix.length; i++) { for (let j = 0; j < matrix[i].length; j++) { console.log(matrix[i][j]); } }
- El primer for itera sobre las filas.
- El segundo for itera sobre las columnas de la fila actual.
Un error frecuente al copiar y pegar es olvidar cambiar la variable del contador; usar i donde debería ir j provoca un loop infinito [6:25].
¿Cómo buscar un elemento específico dentro de la matriz?
Se crea una función que recibe la matriz y el elemento a buscar. Dentro se usan los mismos dos for anidados y un condicional que compara cada posición con el valor deseado [5:10]:
js function find_element(matrix, element) { for (let i = 0; i < matrix.length; i++) { for (let j = 0; j < matrix[i].length; j++) { if (matrix[i][j] === element) { return true; } } } return false; }
console.log(find_element(matrix, 5)); // true
Si el elemento coincide, la función retorna true de inmediato. Si ninguno coincide tras recorrer toda la estructura, retorna false.
¿Cómo duplicar una matriz sin mutar la original?
Para crear una copia independiente se utiliza el spread operator (...), que copia cada fila en un nuevo array [8:00]:
js function duplicate_matrix(matrix) { const newMatrix = []; for (let i = 0; i < matrix.length; i++) { newMatrix[i] = [...matrix[i]]; } return newMatrix; }
console.log(duplicate_matrix(matrix));
- Se inicializa
newMatrixcomo un array vacío. - En cada iteración se copia la fila correspondiente con
...matrix[i]. - Al usar el spread operator se evita la mutación de la matriz original, ya que cada fila es una referencia nueva.
Estas tres operaciones —recorrer, buscar y duplicar— conforman la base para manipular cualquier estructura bidimensional. ¿Has probado combinar estas técnicas para resolver ejercicios más complejos como rotar o transponer una matriz? Comparte tu experiencia en los comentarios.