1
00:00:01,290 --> 00:00:05,633
Y ahora, es el momento del desafío de codificación número tres.

2
00:00:07,380 --> 00:00:08,970
y seguimos trabajando

3
00:00:08,970 --> 00:00:11,700
en nuestra aplicación de apuestas de fútbol.

4
00:00:11,700 --> 00:00:15,850
Ahora esta vez, tenemos este mapa aquí abajo.

5
00:00:15,850 --> 00:00:19,590
Entonces este, que contiene todos los eventos que sucedieron.

6
00:00:19,590 --> 00:00:21,360
durante el juego.

7
00:00:21,360 --> 00:00:24,370
Así que los valores aquí son los eventos mismos,

8
00:00:24,370 --> 00:00:27,680
por ejemplo, un gol o una sustitución,

9
00:00:27,680 --> 00:00:31,833
y las claves son los minutos, en que ocurre el evento.

10
00:00:32,790 --> 00:00:37,270
Y fíjate, que un partido de fútbol tiene 90 minutos,

11
00:00:37,270 --> 00:00:39,180
más algo de tiempo extra.

12
00:00:39,180 --> 00:00:41,650
Así que esto podría ser un poco más de 90,

13
00:00:41,650 --> 00:00:43,980
pero por lo general siempre son 90 minutos,

14
00:00:43,980 --> 00:00:47,563
en caso de que no estés familiarizado con este hermoso juego.

15
00:00:48,630 --> 00:00:53,020
De todos modos, sus tareas son crear una matriz llamada eventos,

16
00:00:53,020 --> 00:00:55,410
que contendrá todos los diferentes eventos del juego

17
00:00:55,410 --> 00:00:57,830
que sucedió durante este juego.

18
00:00:57,830 --> 00:01:00,983
Y eso significa que no hay duplicados en esa matriz.

19
00:01:01,960 --> 00:01:03,970
Ahora, después de que el juego haya terminado,

20
00:01:03,970 --> 00:01:08,970
se constató que la tarjeta amarilla desde el minuto 64 fue desleal.

21
00:01:09,050 --> 00:01:12,810
Por lo tanto, elimine este evento del registro.

22
00:01:12,810 --> 00:01:16,260
A continuación, imprima la cadena de distribución en la consola.

23
00:01:16,260 --> 00:01:19,000
Un evento ocurría en promedio cada nueve minutos.

24
00:01:19,000 --> 00:01:23,890
Y por supuesto, su tarea es calcular estos nueve minutos,

25
00:01:23,890 --> 00:01:27,473
teniendo en cuenta, que un juego tiene 90 minutos.

26
00:01:28,440 --> 00:01:31,380
Finalmente, repite los eventos,

27
00:01:31,380 --> 00:01:33,320
y luego inicie sesión en la consola.

28
00:01:33,320 --> 00:01:36,180
Y lo complicado de esto, es que debes marcar

29
00:01:36,180 --> 00:01:39,010
si ocurrieron en la primera mitad del juego,

30
00:01:39,010 --> 00:01:40,740
o la segunda mitad.

31
00:01:40,740 --> 00:01:43,130
Y la segunda mitad significa,

32
00:01:43,130 --> 00:01:46,003
que sucedió después de 45 minutos.

33
00:01:46,990 --> 00:01:49,123
Así que debería verse algo como esto.

34
00:01:50,380 --> 00:01:53,380
Así que creo que este desafío es un poco más fácil.

35
00:01:53,380 --> 00:01:54,760
que el anterior,

36
00:01:54,760 --> 00:01:57,570
y espero que puedas lograr completar

37
00:01:57,570 --> 00:01:59,320
todas estas cuatro tareas.

38
00:01:59,320 --> 00:02:01,463
Así que te veré una vez que hayas terminado.

39
00:02:05,670 --> 00:02:09,160
Entonces, espero que haya sido divertido.

40
00:02:09,160 --> 00:02:12,540
Entonces, comencemos de inmediato con la solución aquí.

41
00:02:12,540 --> 00:02:16,380
Así que deberíamos crear una matriz llamada eventos,

42
00:02:16,380 --> 00:02:18,720
con los eventos únicos.

43
00:02:18,720 --> 00:02:23,720
Básicamente, esos son los valores únicos de todos estos aquí.

44
00:02:24,460 --> 00:02:27,100
Ahora, ¿cuáles son estos valores aquí?

45
00:02:27,100 --> 00:02:31,270
Son esencialmente los valores de este mapa, ¿verdad?

46
00:02:31,270 --> 00:02:34,660
Entonces, lo que estoy diciendo es que son

47
00:02:34,660 --> 00:02:39,660
en gameEvents.values.

48
00:02:40,020 --> 00:02:42,010
Y aprendimos sobre este

49
00:02:42,010 --> 00:02:44,893
algo así como al final del último video.

50
00:02:46,870 --> 00:02:49,070
Así que comentemos esto aquí.

51
00:02:49,070 --> 00:02:52,820
Y así, en efecto, vemos que esto es lo que contiene

52
00:02:52,820 --> 00:02:55,733
los valores que nos interesan.

53
00:02:57,260 --> 00:02:58,093
Está bien.

54
00:02:59,130 --> 00:03:02,713
Entonces, digamos gameEvents.values,

55
00:03:05,280 --> 00:03:07,510
y este es nuestro punto de partida,

56
00:03:07,510 --> 00:03:09,870
y ahora para obtener los valores únicos aquí,

57
00:03:09,870 --> 00:03:14,690
básicamente necesitamos crear un conjunto, a partir de esto, ¿verdad?

58
00:03:14,690 --> 00:03:17,183
Ese es el principal caso de uso de conjuntos.

59
00:03:18,580 --> 00:03:23,480
Entonces, nuevo conjunto, pero esto solo no será suficiente,

60
00:03:23,480 --> 00:03:24,963
pero aún echemos un vistazo,

61
00:03:27,860 --> 00:03:28,923
en esto por ahora,

62
00:03:30,760 --> 00:03:32,370
y hermoso.

63
00:03:32,370 --> 00:03:34,770
Entonces, de hecho, tenemos un conjunto con el único

64
00:03:34,770 --> 00:03:37,450
cuatro eventos que sucedieron.

65
00:03:37,450 --> 00:03:40,890
Entonces, solo hubo goles, sustituciones, tarjetas amarillas.

66
00:03:40,890 --> 00:03:42,083
y tarjetas rojas.

67
00:03:43,030 --> 00:03:47,330
Y ahora, para convertirnos en una matriz, ajustamos como antes.

68
00:03:47,330 --> 00:03:49,090
Crear una nueva matriz,

69
00:03:49,090 --> 00:03:53,270
y un operador de propagación para desempaquetar este conjunto,

70
00:03:53,270 --> 00:03:54,863
y luego hemos terminado.

71
00:03:56,960 --> 00:04:01,310
A continuación, este es el más fácil,

72
00:04:01,310 --> 00:04:05,963
por lo que nos dice que eliminemos el evento del minuto 64.

73
00:04:06,900 --> 00:04:09,090
Eso es muy fácil.

74
00:04:09,090 --> 00:04:13,460
Así que gameEvents.delete,

75
00:04:13,460 --> 00:04:17,530
y ahora todo lo que tenemos que hacer es usar esa clave exacta,

76
00:04:17,530 --> 00:04:20,350
y entonces ese evento se habrá ido.

77
00:04:20,350 --> 00:04:24,343
Excelente. El siguiente es igual de fácil, creo.

78
00:04:26,550 --> 00:04:28,903
Así que tomemos esto de aquí.

79
00:04:33,757 --> 00:04:38,257
Y ahora solo necesitamos calcular este promedio real.

80
00:04:39,150 --> 00:04:40,463
¿Y cómo hacemos eso?

81
00:04:41,640 --> 00:04:46,640
Básicamente, para decir que un evento sucedió cada X minutos,

82
00:04:47,160 --> 00:04:51,320
simplemente necesitamos dividir el número de eventos por 90 minutos.

83
00:04:51,320 --> 00:04:52,923
Así que la duración del juego.

84
00:04:54,050 --> 00:04:54,910
Entonces, vemos aquí

85
00:04:54,910 --> 00:04:59,910
que tenemos tres, seis, nueve, once eventos.

86
00:05:00,110 --> 00:05:02,993
Entonces, ¿cómo podemos contar eso programáticamente?

87
00:05:04,120 --> 00:05:07,840
Bueno, para eso tenemos gameEvents.size, ¿recuerdas?

88
00:05:11,510 --> 00:05:15,150
Y ahora lo dividimos por 90,

89
00:05:15,150 --> 00:05:18,730
y con eso, obtenemos este extraño número

90
00:05:18,730 --> 00:05:22,480
y eso es porque en realidad necesitamos lo contrario.

91
00:05:22,480 --> 00:05:23,660
Así que tenemos que decir

92
00:05:23,660 --> 00:05:28,660
90 minutos divididos por la cantidad de eventos que sucedieron,

93
00:05:29,620 --> 00:05:31,640
decir que en promedio,

94
00:05:31,640 --> 00:05:33,663
algo sucedía cada nueve minutos.

95
00:05:35,040 --> 00:05:38,050
Ahora, si queremos que sea realmente específico,

96
00:05:38,050 --> 00:05:41,630
entonces este juego realmente duró 92 minutos.

97
00:05:41,630 --> 00:05:44,183
Entonces, ¿cómo obtenemos ese valor?

98
00:05:46,560 --> 00:05:48,770
Así que esto es solo una bonificación, ¿de acuerdo?

99
00:05:48,770 --> 00:05:52,310
No esperaba que hicieras esto.

100
00:05:52,310 --> 00:05:55,150
Así que este 92, es esencialmente el último

101
00:05:55,150 --> 00:05:57,193
de las claves del mapa.

102
00:05:58,450 --> 00:06:00,560
Estoy vendido. Consigamos las llaves.

103
00:06:00,560 --> 00:06:05,490
Eso es gameEvents.keys.

104
00:06:05,490 --> 00:06:09,033
Y como siempre, necesitamos convertir esto en una matriz.

105
00:06:11,500 --> 00:06:13,943
Entonces, usando todas las herramientas que ya aprendimos.

106
00:06:16,040 --> 00:06:17,393
Así que solo para asegurarme,

107
00:06:19,580 --> 00:06:21,270
de hecho, es.

108
00:06:21,270 --> 00:06:23,880
Y ahora queremos el último valor.

109
00:06:23,880 --> 00:06:26,270
¿Y cómo podemos obtener el último valor?

110
00:06:26,270 --> 00:06:28,210
¿Lo recuerdas?

111
00:06:28,210 --> 00:06:31,180
Bueno, podemos usar el método pop.

112
00:06:31,180 --> 00:06:34,440
Y en el pasado, usábamos principalmente el método pop,

113
00:06:34,440 --> 00:06:37,540
para simplemente eliminar el último elemento de la matriz.

114
00:06:37,540 --> 00:06:39,690
Pero también, en ese entonces te dije,

115
00:06:39,690 --> 00:06:42,743
que también devuelve, esa matriz eliminada.

116
00:06:43,880 --> 00:06:46,280
O en realidad ese elemento eliminado.

117
00:06:46,280 --> 00:06:49,860
Y entonces, aquí podemos aprovechar eso.

118
00:06:49,860 --> 00:06:52,500
Entonces, esto aquí es una matriz ahora,

119
00:06:52,500 --> 00:06:54,883
y así sucesivamente, podemos llamar pop.

120
00:06:56,340 --> 00:06:59,640
Y eso tomará, el último elemento de la matriz.

121
00:06:59,640 --> 00:07:00,693
y dárnoslo.

122
00:07:01,640 --> 00:07:03,100
Así que eso es 92.

123
00:07:03,100 --> 00:07:05,253
Y para que esto sea realmente preciso,

124
00:07:07,180 --> 00:07:10,293
aquí ya podemos decir, tiempo.

125
00:07:12,890 --> 00:07:16,710
Bueno. Y entonces esto, es aún mejor en este momento,

126
00:07:16,710 --> 00:07:19,850
pero de nuevo, esto es solo una especie de bonificación

127
00:07:19,850 --> 00:07:23,090
solo para mostrarte algunos pequeños trucos más agradables.

128
00:07:23,090 --> 00:07:27,013
De todos modos. Ahora nuestro objetivo es recorrer el objeto,

129
00:07:28,510 --> 00:07:30,073
o en realidad a través del mapa.

130
00:07:34,130 --> 00:07:37,683
Y entonces esto es bastante estándar ahora en este punto.

131
00:07:40,740 --> 00:07:42,573
Aquí nos estamos perdiendo el apagado.

132
00:07:43,500 --> 00:07:46,810
Así como lo hicimos en el último video,

133
00:07:46,810 --> 00:07:50,880
y ahora todo lo que tenemos que hacer es averiguar la mitad.

134
00:07:50,880 --> 00:07:53,823
Así que si es la primera mitad, o la segunda mitad.

135
00:07:56,050 --> 00:07:59,490
Entonces, lo que queremos bloquear en la consola es esto.

136
00:07:59,490 --> 00:08:02,163
Y luego así, ya sea una primera o una segunda mitad,

137
00:08:06,230 --> 00:08:07,523
y luego el minuto,

138
00:08:08,370 --> 00:08:09,593
Yo creo, vamos a ver.

139
00:08:10,580 --> 00:08:14,423
Sí. Entonces, el minuto y luego dos puntos, y luego el evento.

140
00:08:15,800 --> 00:08:18,860
Así que hagamos esto aquí más específico,

141
00:08:18,860 --> 00:08:21,710
así que un minuto y un evento.

142
00:08:21,710 --> 00:08:23,760
Eso hace que sea más fácil leer el código.

143
00:08:25,910 --> 00:08:29,313
Entonces minuto y evento.

144
00:08:30,280 --> 00:08:33,803
Y ahora aquí, volvamos a crear una variable externa,

145
00:08:34,730 --> 00:08:36,380
que voy a llamar la mitad.

146
00:08:41,170 --> 00:08:44,210
Y usemos el operador de tornería aquí nuevamente,

147
00:08:44,210 --> 00:08:48,683
por lo que si el minuto es inferior o igual a 45,

148
00:08:50,520 --> 00:08:54,300
entonces es el primero,

149
00:08:54,300 --> 00:08:57,393
si no, es el segundo,

150
00:08:59,030 --> 00:09:00,680
y eso es.

151
00:09:00,680 --> 00:09:04,753
Y eso funcionó bien una vez más. Bueno.

152
00:09:07,130 --> 00:09:09,620
Entonces, espero que haya tenido sentido,

153
00:09:09,620 --> 00:09:13,010
en caso de que no fuera así, siempre es solo analizar el código,

154
00:09:13,010 --> 00:09:17,970
o también puede simplemente hacer algunas preguntas en el área de preguntas y respuestas.

155
00:09:17,970 --> 00:09:21,630
De todos modos, ya casi hemos terminado con esta sección.

156
00:09:21,630 --> 00:09:25,550
A continuación, todo lo que nos queda por hacer es trabajar con fortalezas,

157
00:09:25,550 --> 00:09:28,990
que también es un tema muy bonito y muy interesante

158
00:09:28,990 --> 00:09:31,930
que necesitamos en JavaScript todo el tiempo.

159
00:09:31,930 --> 00:09:34,783
Así que asegúrate de seguirme allí, de inmediato.