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 - parte 2
Resumen
¿Cómo almacenar la puntuación de los equipos ganadores?
En un torneo de lenguajes de programación, identificar claramente al ganador es crucial. No basta con saber quién ganó una partida, sino cuántos puntos acumuló a lo largo del torneo. Este enfoque nos permite crear un sistema de puntuación dinámico y adaptable a cualquier cambio en los competidores.
¿Qué estructura utilizar para guardar los puntos?
Para almacenar los puntos de cada equipo, utilizamos un objeto en JavaScript. Nos permitirá gestionar de manera sencilla los nombres de los equipos y sus respectivas puntuaciones. Así se logra un almacenamiento ordenado y accesible.
const scores = {}; const winningTeam = "JavaScript"; if (scores[winningTeam] === undefined) { scores[winningTeam] = 0; } scores[winningTeam] += 3;
¿Cómo evitar sumar puntos a equipos no existentes?
A menudo, nos enfrentamos al problema de intentar acceder a propiedades que no existen en un objeto. Al hacerlo, obtenemos un valor undefined. Sin embargo, al usar el operador ||, podemos establecer un valor predeterminado para evitar estos problemas.
scores[winningTeam] = (scores[winningTeam] || 0) + 3;
Este código asegura que si winningTeam no existe dentro de scores, se le asignará 0 antes de añadir 3 puntos.
¿Cómo determinar al ganador del torneo?
Una vez que hemos contabilizado los puntos de cada equipo, necesitamos determinar cuál es el equipo con más puntos. Para ello, utilizamos una variable para almacenar al ganador y un condicional para actualizarlo en cada iteración.
¿Cómo se estructura el condicional para encontrar al ganador?
El condicional se revisa dentro del bucle que procesa los resultados, verificando qué equipo tiene el mayor puntaje y garantizando que el número de puntos sea mayor que cero.
let winner = ''; for (let team in scores) { if (scores[team] > (scores[winner] || 0) && scores[team] > 0) { winner = team; } } console.log("The tournament winner is", winner);
En este código, se verifica para cada equipo si su puntuación es mayor que la del actual ganador registrado, asegurando que este cambio solo ocurra si el equipo supera el puntaje más alto visto hasta el momento.
¿Cómo garantizar que siempre haya un ganador claro?
Para que el sistema funcione adecuadamente:
- Asegúrate de que todos los resultados del torneo estén correctamente ingresados.
- Verifica el operador lógico dentro del objeto para confirmar que los valores
undefinedse conviertan a cero. - Asegúrate que las comparaciones dentro del condicional que determina el ganador consideren correctamente el puntaje actual del equipo.
Al seguir estos pasos, el código garantizará que siempre se determine al ganador correcto y se pueda aplicar incluso en situaciones más complejas o con un conjunto distinto de competidores.
Experimenta con diferentes lenguajes y resultados para profundizar en tu comprensión de este mecanismo. La práctica es la clave para afianzar el conocimiento en estructuras de control y manipulación de datos en programación.