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
Proyecto: Encuentra al ganador del torneo
Resumen
¿Cómo resolver problemas algorítmicos con arrays bidimensionales?
Al enfrentar problemas algorítmicos que involucran arrays bidimensionales, estamos ante una emocionante oportunidad de demostrar nuestras habilidades en programación. Este tipo de problemas son habituales en pruebas técnicas para programadores y pueden parecer desafiantes. ¿Listo para embarcarte en esta aventura? A continuación, te mostraremos cómo enfrentarlo paso a paso, poniendo en práctica la teoría de arrays bidimensionales.
¿Qué es necesario para resolver el ejercicio?
Para realizar este ejercicio, primeramente, debemos leer y entender el problema en su totalidad. El desafío es crear una función para determinar el ganador en un torneo algorítmico basado en un formato específico de competiciones y resultados.
-
Input:
competitions: Un array de arrays que contiene pares de equipos. Cada par corresponde a un equipo local y un visitante.results: Un array que indica quién ganó en cada uno de los enfrentamientos, siendo1para el equipo local y0para el visitante.
-
Output:
- El equipo que acumuló la mayor cantidad de puntos al final del torneo.
¿Cómo implementar la solución con JavaScript?
Para resolver el problema, empieza por identificar las entradas de tu función: los arrays competitions y results. Tu objetivo es recorrer estos arrays y calcular cuál equipo ganó más puntos.
Comencemos con la estructura básica de la función:
function tournamentWinner(competitions, results) { let currentBestTeam = ''; const scores = {[currentBestTeam]: 0}; for (let i = 0; i < competitions.length; i++) { const result = results[i]; const [homeTeam, awayTeam] = competitions[i]; const winningTeam = result === 1 ? homeTeam : awayTeam; if (!(winningTeam in scores)) scores[winningTeam] = 0; scores[winningTeam] += 3; if (scores[winningTeam] > scores[currentBestTeam]) { currentBestTeam = winningTeam; } } return currentBestTeam; }
En el fragmento anterior, es esencial entender el uso del ciclo for para recorrer los arrays dados. Observa cómo utilizamos un objeto scores para llevar el seguimiento de los puntos de cada equipo.
- Recorrido del array: Mediante
for, determinamos qué equipo ganó en cada secuencia. - Asignación de puntos: Ganador recibe 3 puntos, y almacenamos y actualizamos el puntaje en el objeto
scores.
¿Qué elementos clave involucra este enfoque?
Este algoritmo se apoya en varios conceptos clave que mejorarían tu comprensión:
- Desestructuración de arrays:
const [homeTeam, awayTeam] = competitions[i];extrae fácilmente los equipos de cada subarray. - Condiciones y asignaciones: Determina el ganador de cada enfrentamiento mediante el operador ternario
winningTeam = result === 1 ? homeTeam : awayTeam;. - Uso de objetos para almacenamiento: Eficaz para manejar y buscar dinámicamente los puntajes de cada equipo.
¿Por qué es esta una herramienta poderosa?
Resuelve problemas así usando arrays te ayuda a:
- Mejorar en algoritmos y estructuración de datos.
- Desarrollar lógica en busca de soluciones eficientes.
No subestimes la importancia de estos ejercicios en tu carrera como programador. ¡Sigue practicando, explora más problemas, y permítete crecer! Confía que, con cada desafío, te haces más fuerte y hábil.