Y ahora, es el momento del desafío de codificación número tres.
y seguimos trabajando
en nuestra aplicación de apuestas de fútbol.
Ahora esta vez, tenemos este mapa aquí abajo.
Entonces este, que contiene todos los eventos que sucedieron.
durante el juego.
Así que los valores aquí son los eventos mismos,
por ejemplo, un gol o una sustitución,
y las claves son los minutos, en que ocurre el evento.
Y fíjate, que un partido de fútbol tiene 90 minutos,
más algo de tiempo extra.
Así que esto podría ser un poco más de 90,
pero por lo general siempre son 90 minutos,
en caso de que no estés familiarizado con este hermoso juego.
De todos modos, sus tareas son crear una matriz llamada eventos,
que contendrá todos los diferentes eventos del juego
que sucedió durante este juego.
Y eso significa que no hay duplicados en esa matriz.
Ahora, después de que el juego haya terminado,
se constató que la tarjeta amarilla desde el minuto 64 fue desleal.
Por lo tanto, elimine este evento del registro.
A continuación, imprima la cadena de distribución en la consola.
Un evento ocurría en promedio cada nueve minutos.
Y por supuesto, su tarea es calcular estos nueve minutos,
teniendo en cuenta, que un juego tiene 90 minutos.
Finalmente, repite los eventos,
y luego inicie sesión en la consola.
Y lo complicado de esto, es que debes marcar
si ocurrieron en la primera mitad del juego,
o la segunda mitad.
Y la segunda mitad significa,
que sucedió después de 45 minutos.
Así que debería verse algo como esto.
Así que creo que este desafío es un poco más fácil.
que el anterior,
y espero que puedas lograr completar
todas estas cuatro tareas.
Así que te veré una vez que hayas terminado.
Entonces, espero que haya sido divertido.
Entonces, comencemos de inmediato con la solución aquí.
Así que deberíamos crear una matriz llamada eventos,
con los eventos únicos.
Básicamente, esos son los valores únicos de todos estos aquí.
Ahora, ¿cuáles son estos valores aquí?
Son esencialmente los valores de este mapa, ¿verdad?
Entonces, lo que estoy diciendo es que son
en gameEvents.values.
Y aprendimos sobre este
algo así como al final del último video.
Así que comentemos esto aquí.
Y así, en efecto, vemos que esto es lo que contiene
los valores que nos interesan.
Está bien.
Entonces, digamos gameEvents.values,
y este es nuestro punto de partida,
y ahora para obtener los valores únicos aquí,
básicamente necesitamos crear un conjunto, a partir de esto, ¿verdad?
Ese es el principal caso de uso de conjuntos.
Entonces, nuevo conjunto, pero esto solo no será suficiente,
pero aún echemos un vistazo,
en esto por ahora,
y hermoso.
Entonces, de hecho, tenemos un conjunto con el único
cuatro eventos que sucedieron.
Entonces, solo hubo goles, sustituciones, tarjetas amarillas.
y tarjetas rojas.
Y ahora, para convertirnos en una matriz, ajustamos como antes.
Crear una nueva matriz,
y un operador de propagación para desempaquetar este conjunto,
y luego hemos terminado.
A continuación, este es el más fácil,
por lo que nos dice que eliminemos el evento del minuto 64.
Eso es muy fácil.
Así que gameEvents.delete,
y ahora todo lo que tenemos que hacer es usar esa clave exacta,
y entonces ese evento se habrá ido.
Excelente. El siguiente es igual de fácil, creo.
Así que tomemos esto de aquí.
Y ahora solo necesitamos calcular este promedio real.
¿Y cómo hacemos eso?
Básicamente, para decir que un evento sucedió cada X minutos,
simplemente necesitamos dividir el número de eventos por 90 minutos.
Así que la duración del juego.
Entonces, vemos aquí
que tenemos tres, seis, nueve, once eventos.
Entonces, ¿cómo podemos contar eso programáticamente?
Bueno, para eso tenemos gameEvents.size, ¿recuerdas?
Y ahora lo dividimos por 90,
y con eso, obtenemos este extraño número
y eso es porque en realidad necesitamos lo contrario.
Así que tenemos que decir
90 minutos divididos por la cantidad de eventos que sucedieron,
decir que en promedio,
algo sucedía cada nueve minutos.
Ahora, si queremos que sea realmente específico,
entonces este juego realmente duró 92 minutos.
Entonces, ¿cómo obtenemos ese valor?
Así que esto es solo una bonificación, ¿de acuerdo?
No esperaba que hicieras esto.
Así que este 92, es esencialmente el último
de las claves del mapa.
Estoy vendido. Consigamos las llaves.
Eso es gameEvents.keys.
Y como siempre, necesitamos convertir esto en una matriz.
Entonces, usando todas las herramientas que ya aprendimos.
Así que solo para asegurarme,
de hecho, es.
Y ahora queremos el último valor.
¿Y cómo podemos obtener el último valor?
¿Lo recuerdas?
Bueno, podemos usar el método pop.
Y en el pasado, usábamos principalmente el método pop,
para simplemente eliminar el último elemento de la matriz.
Pero también, en ese entonces te dije,
que también devuelve, esa matriz eliminada.
O en realidad ese elemento eliminado.
Y entonces, aquí podemos aprovechar eso.
Entonces, esto aquí es una matriz ahora,
y así sucesivamente, podemos llamar pop.
Y eso tomará, el último elemento de la matriz.
y dárnoslo.
Así que eso es 92.
Y para que esto sea realmente preciso,
aquí ya podemos decir, tiempo.
Bueno. Y entonces esto, es aún mejor en este momento,
pero de nuevo, esto es solo una especie de bonificación
solo para mostrarte algunos pequeños trucos más agradables.
De todos modos. Ahora nuestro objetivo es recorrer el objeto,
o en realidad a través del mapa.
Y entonces esto es bastante estándar ahora en este punto.
Aquí nos estamos perdiendo el apagado.
Así como lo hicimos en el último video,
y ahora todo lo que tenemos que hacer es averiguar la mitad.
Así que si es la primera mitad, o la segunda mitad.
Entonces, lo que queremos bloquear en la consola es esto.
Y luego así, ya sea una primera o una segunda mitad,
y luego el minuto,
Yo creo, vamos a ver.
Sí. Entonces, el minuto y luego dos puntos, y luego el evento.
Así que hagamos esto aquí más específico,
así que un minuto y un evento.
Eso hace que sea más fácil leer el código.
Entonces minuto y evento.
Y ahora aquí, volvamos a crear una variable externa,
que voy a llamar la mitad.
Y usemos el operador de tornería aquí nuevamente,
por lo que si el minuto es inferior o igual a 45,
entonces es el primero,
si no, es el segundo,
y eso es.
Y eso funcionó bien una vez más. Bueno.
Entonces, espero que haya tenido sentido,
en caso de que no fuera así, siempre es solo analizar el código,
o también puede simplemente hacer algunas preguntas en el área de preguntas y respuestas.
De todos modos, ya casi hemos terminado con esta sección.
A continuación, todo lo que nos queda por hacer es trabajar con fortalezas,
que también es un tema muy bonito y muy interesante
que necesitamos en JavaScript todo el tiempo.
Así que asegúrate de seguirme allí, de inmediato.