desafiémonos a nosotros mismos
con el desafío de codificación número dos.
Y en este, vamos a continuar
con nuestra aplicación de apuestas de fútbol.
Y permítanme comenzar diciendo
que este desafío es en realidad un poco difícil.
¿Está bien?
Pero eso es a propósito.
Entonces, después de todo, se llama un desafío.
Y entonces realmente deberías desafiarte a ti mismo
con estos ejercicios.
De lo contrario, podría llamarse
una codificación de copiar y pegar, ¿verdad?
Así que por favor haz tu mejor esfuerzo para resolver estos.
Y puedes probar el marco de resolución de problemas
que hablábamos antes.
Y por supuesto también puedes usar Google MDN
y así sucesivamente y así sucesivamente.
Bueno.
Pero con eso fuera del camino, entremos en los ejercicios.
Y el primero es recorrer la matriz game.scored
y luego imprima cada uno de los jugadores en la consola
junto con el número de gol.
Así que este no es tan difícil.
Y así que solo...
Sí.
Así que el objeto está aquí abajo,
entonces vamos a usar el mismo objeto. ¿Está bien?
Así que esta es la matriz de la que estaba hablando.
Y aquí, en este caso,
deberíamos imprimir el gol uno de "lewandowski",
Luego aquí el gol dos, "Gnarby", el gol tres "Lewandowski",
y el gol cuatro, "Hummels".
Bueno.
Luego, número dos, use un bucle para calcular la cuota promedio
y registrarlo en la consola.
Y ya estudiamos cómo calcular promedios.
Así que puedes ir a comprobarlo si no te acuerdas.
Y aquí deberías usar directamente el objeto en sí.
Así que no destruyas el objeto primero en variables
y luego usar eso para calcular el promedio,
pero en cambio realmente calcule el promedio de los elementos
en el objeto, ¿de acuerdo?
Luego número tres, quiero que imprimas las tres probabilidades
a la consola y hacerlo de una forma agradable,
como se puede ver aquí.
Ahora aquí, no se le permite codificar
los nombres de los equipos.
Está bien.
Entonces, obténgalos directamente del objeto del juego en sí.
Ahora, por supuesto, estás a excepción del sorteo.
porque eso no está en ninguna parte del objeto del juego.
Entonces, como pista, tengo miedo de que las probabilidades
y los objetos del juego tienen exactamente los mismos nombres de propiedades.
Y entonces puedes usar ese conocimiento tal vez
para obtener el nombre de los equipos aquí.
Así que estos son los tres ejercicios para este desafío,
pero luego también tengo un bono.
Ahora, déjame decirte que no voy a resolver
esta pregunta adicional en este video
porque me tomaría un poco demasiado tiempo
pero igual pondre la solucion
en el código final de esta sección,
entonces en el repositorio de GitHub,
para que pueda ver la solución allí
si intentas hacer este bono.
Así que este es realmente difícil.
Y lo que quiero que hagas
es crear un objeto llamado partituras,
que contendrá el nombre de los jugadores
que anotó como propiedades,
y entonces Gnarby, Hummels y Lewandowski fueron los jugadores
quien anotó en este juego.
Y como valor para cada una de las propiedades
queremos el número de goles.
Está bien.
Entonces esto significa que Lewandowski anotó dos goles.
y los otros dos jugadores anotaron solo un gol cada uno.
Así que esto es un poco difícil de nuevo
Pero puedes hacerlo.
Bueno, al menos con algo de investigación.
y con un poco de repaso de todo el material
del curso hasta ahora.
De todos modos, buena suerte con este desafío.
Tome su tiempo.
Y te veré una vez
estas listo.
Está bien.
Espero que hayas hecho al menos uno o dos de estos ejercicios.
Y aquí va mi solución.
Y ten en cuenta una vez más que mi solución
puede ser diferente de la tuya, pero eso está totalmente bien.
Siempre y cuando el tuyo produzca el mismo resultado.
Así que aquí, el objetivo es anotar en la matriz anotada,
e imprime todos los jugadores en la consola.
Así que const, y volvamos a arreglar eso más tarde,
y luego de game.cored.
Y ahora realmente queremos las entradas.
Está bien.
Y queremos los índices porque también queremos
el número de la portería.
¿Recordar?
Así que meta uno, dos, tres y cuatro.
Bueno. Y así las entradas nos darán eso.
Y ahora solo tenemos que reestructurar eso
en el índice y luego en el reproductor.
Bueno. En realidad, ni siquiera necesitamos llaves.
Solo digamos, console.log y luego Goal,
entonces el índice más uno.
Para que comience en el objetivo número uno,
y luego simplemente el jugador.
Vamos a ver.
Ah, y ahora tenemos el problema aquí.
que estoy accediendo al juego antes de que se inicialice.
Y entonces el problema es que el juego está aquí abajo.
Así que tendré que tomar este objeto del juego ahora.
a ese otro desafío.
Así que vamos a cortarlo desde aquí y ponerlo aquí.
Así que ahora debería funcionar.
Y efectivamente conseguimos los cuatro goles
muy bien impreso en la consola
exactamente en el orden en que aparecen aquí.
Muy bien, el siguiente.
Y es uno que tenemos que calcular la cuota media.
Así que el promedio básicamente de estos tres números aquí.
Entonces, lo que vamos a hacer es recorrer este objeto aquí
y simplemente agregue todos estos tres valores juntos
y finalmente dividirlos por el número de elementos aquí.
Y así es como se calcula un promedio.
Entonces comenzamos creando el promedio y lo ponemos a cero.
Y de nuevo, ya lo hicimos antes, creo.
Y ahora podemos hacer un bucle
sobre el objeto tal como te lo expliqué antes.
const impar de, y ahora ¿qué es lo que realmente queremos?
¿Queremos las claves o los valores o ambos?
Bueno, en este caso, estamos realmente interesados
en los valores, ¿verdad?
Y entonces este Object.values ​​nos dará una matriz
contiene esencialmente estos tres valores.
Así que tenemos que decir game.odds.
Bueno.
Y ahora en cada iteración,
simplemente sumaremos estas cuotas al promedio.
Para que luego al final,
podemos dividirlo por la longitud de esta matriz object.values.
Así que hagamos eso, más igualar la cuota actual,
y finalmente promedio, promedio dividido igual,
y entonces este es uno nuevo, por object.values, game.odds,
y luego registrémoslo en la consola.
Así que este aquí significa básicamente,
el promedio es igual al promedio dividido por esto aquí.
Y esto es en realidad lo mismo que aquí,
así que eso es refactorizarlo en, digamos,
simplemente probabilidades, y luego usemos eso aquí.
Impares,
y probabilidades
Y tenemos un problema.
Así que hagamos algo de depuración aquí.
Comenzaré echando un vistazo a la media.
después de que se calcule aquí en la matriz.
Tan promedio, oh.
Así que aquí tenemos un número
lo que significa que algo anda mal aquí en la división.
Bien.
Y veo que es porque necesitamos escribir odds.length.
Bueno. Y entonces será el número tres en este caso.
Entonces, antes de dividir por toda la matriz
y eso no tiene ningún sentido.
Y ahora deberíamos ver algo cercano a las cuatro aquí.
Sí. Entonces 3.7 esencialmente.
Y ese es nuestro resultado.
Bueno.
Y puedes ir a este código aquí de nuevo,
si necesitas entender eso aún más,
pero ahora pasemos aquí al ejercicio número tres.
Y esta vez el objetivo es imprimir básicamente
el contenido del objeto a la consola.
Así que vamos a repetir eso.
Y nuevamente, primero diré lo que necesitamos aquí en realidad.
Así que queremos imprimir tanto el equipo como el impar,
así que necesitamos todo el objeto.
Y tal como aprendimos en una conferencia anterior,
usamos object.entries de game.odds.
Bueno. Y entonces sabemos que obtenemos una matriz de matrices,
que en cada posición tendrá tanto el equipo como el impar.
Está bien.
Así que digamos equipo e impar.
Está bien.
Y aquí somos nosotros quienes definimos el nombre de la variable
porque ahora es una matriz.
Así que no tenemos que hacer coincidir ningún nombre de propiedad.
Y comencemos simplemente iniciando sesión en la consola
equipo y extraño.
Bueno.
Y de hecho, ya tenemos ese tipo de trabajo.
Ya tenemos el equipo aquí
y tenemos los tres valores impares.
Ahora lo que queremos hacer es crear una cadena
como esto.
en realidad copiemos esto.
Entonces sabemos lo que tenemos que hacer.
Y por cierto, aquí, fíjate de nuevo,
lo que te expliqué en la última lección,
cómo en la matriz usamos el método de entradas
para obtener las entradas de la matriz,
pero en el objeto tenemos que usar object.entries
y luego pasar a la función,
el objeto que nos interesa.
Así que esa es fundamentalmente la diferencia.
Así que tenlo en mente.
Bueno. Entonces aquí, ahora queremos construir una cadena como esa.
Tan extraño de la victoria Bayern Munich,
empate o victoria Borussia Dortmund.
Y aquí, vamos a necesitar algo más de lógica.
Pongamos aquí algunos puntos.
Y ahora, ahora aquí lo raro.
Así que lo extraño es la parte fácil.
Así que eso ya lo tenemos terminado.
Pero ahora aquí necesitamos una lógica más compleja.
Y en realidad vamos a crear esta parte de la cadena.
Así como la victoria Bayern Munich, o Borrusia Dortmund
o dibujar, vamos a crearlo aquí en un valor separado.
Así que llamemos a este teamString.
Y aquí lo que voy a usar
es usar el operador ternery.
Bueno.
Entonces diré que si el equipo aquí es x,
como si lo tuviéramos aquí,
entonces la cadena debería convertirse en draw.
Y entonces eso creará esto aquí.
Entonces el equipo es igual a x, entonces el resultado debería ser empate.
Pero si no, entonces necesitamos el nombre del equipo.
Entonces, ¿cómo conseguiremos eso?
Y recuerda, había una pista sobre esto.
Así que tenga en cuenta cómo las probabilidades
y los objetos del juego tienen los mismos nombres de propiedades.
Y de hecho aquí tenemos el equipo uno, el equipo dos,
y aquí tenemos el equipo uno y el equipo dos también.
Y aquí están los nombres de los equipos.
Y ahora obtengamos los nombres de estos equipos.
usando estas claves que ya tenemos aquí.
Por eso queremos encadenar la victoria.
Y luego vamos al objeto del juego y al equipo.
Vamos a revisar.
Ahora sé, por supuesto, que tenemos que poner esa cuerda aquí.
Así que teamString y funciona muy bien.
Así que recapitulemos esta parte aquí.
Así que aquí vamos al juego,
que es todo el objeto del juego
y tomamos el equipo de la propiedad.
Pero el equipo ya es el nombre de esta propiedad aquí, ¿verdad?
Así que es el equipo uno o el equipo dos.
Y entonces tomamos eso para leer la propiedad.
con el mismo nombre del objeto del juego.
Y por lo tanto tenemos al Bayern de Múnich y al Borussia Dortmund.
Bueno. Excelente.
Así que este fue un poco más difícil.
pero al final lo logramos.
Ahora, de nuevo, no crearé la solución.
por el bono pero siempre puedes encontrarlo
en el código final de esta sección.
Y dicho esto,
Ahora volvamos a aprender un poco más de JavaScript.