"use strict"; const weekdays = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]; const openingHours = { //es6+ property assignment syntax [weekdays[3]]: { open: 12, close: 22, }, fri: { open: 11, close: 23, }, //es6+ property assignment syntax [weekdays[5]]: { open: 0, // Open 24 hours close: 24, }, }; const restaurant = { name: "Classico Italiano", address: "Via Angelo Tavanti 23, Firenze, Italy", categories: ["Italian", "Pizzeria", "Vegetarian", "Organic"], starterMenu: ["Focaccia", "Bruschetta", "Garlic Bread", "Caprese Salad"], mainMenu: ["Pizza", "Pasta", "Risotto"], //openingHours: openingHours, //es5 syntax openingHours, //es6+ syntax order: (starterIndex, mainCourseIndex) => { return [ //the scope of this keyword is global because of arrow functions restaurant.starterMenu[starterIndex], restaurant.mainMenu[mainCourseIndex], ]; }, orderDelivery: function ({ starterIndex = 2, mainCourseIndex = 0, time = new Date().getHours(), address, }) { console.log( //the scope of this keyword is lexical because of function expression `Order Recieved!! Your ${this.starterMenu[starterIndex]} and ${this.mainMenu[mainCourseIndex]} will be deleivered to ${address} at ${time}` ); }, //es6+ style of methods orderPizza(side1, side2, side3) { console.log( `Enjoy your Pizza with a complementry side of ${side1}, ${side2} and ${side3}` ); }, orderPasta: function (side1, ...otherSides) { console.log(side1, otherSides); }, }; const game = { team1: "Bayern Munich", team2: "Borrussia Dortmund", players: [ [ "Neuer", "Pavard", "Martinez", "Alaba", "Davies", "Kimmich", "Goretzka", "Coman", "Muller", "Gnarby", "Lewandowski", ], [ "Burki", "Schulz", "Hummels", "Akanji", "Hakimi", "Weigl", "Witsel", "Hazard", "Brandt", "Sancho", "Gotze", ], ], score: "4:0", scored: ["Lewandowski", "Gnarby", "Lewandowski", "Hummels"], date: "Nov 9th, 2037", odds: { team1: 1.33, x: 3.25, team2: 6.5, }, }; /////////////////////////////CODING CHALLENGE No.1///////////////////////// // We're building a football betting app (soccer for my American friends 😅)! // Suppose we get data from a web service about a certain game (below). In this challenge we're gonna work with the data. So here are your tasks: // 1. Create one player array for each team (variables 'players1' and 'players2') // 2. The first player in any player array is the goalkeeper and the others are field players. For Bayern Munich (team 1) create one variable ('gk') with the goalkeeper's name, and one array ('fieldPlayers') with all the remaining 10 field players // 3. Create an array 'allPlayers' containing all players of both teams (22 players) // 4. During the game, Bayern Munich (team 1) used 3 substitute players. So create a new array ('players1Final') containing all the original team1 players plus 'Thiago', 'Coutinho' and 'Perisic' // 5. Based on the game.odds object, create one variable for each odd (called 'team1', 'draw' and 'team2') // 6. Write a function ('printGoals') that receives an arbitrary number of player names (NOT an array) and prints each of them to the console, along with the number of goals that were scored in total (number of player names passed in) // 7. The team with the lower odd is more likely to win. Print to the console which team is more likely to win, WITHOUT using an if/else statement or the ternary operator. // TEST DATA FOR 6: Use players 'Davies', 'Muller', 'Lewandowski' and 'Kimmich'. Then, call the function again with players from game.scored // GOOD LUCK 😀 //1. Task One let [players1, players2] = game.players; console.log(players1, players2); //2. Task Two let [gk, ...fieldPlayers] = players1; console.log(gk, fieldPlayers); //3. Task Three let allPlayers = [...players1, ...players2]; console.log(allPlayers); //4. Task Four let players1Final = [...players1, "Thiago", "Coutinho", "Perisic"]; console.log(players1Final); //5. Task Five let { team1, x: draw, team2 } = game.odds; console.log(team1, draw, team2); //6. Task Six //------------My Solution----------------------------// // function printGoals(...playerNames){ // console.log(...playerNames); // } //--------------------Actual Solution------------------// let printGoals = (...playerNames) => { console.log(`${playerNames.length} goals were scored.`); }; printGoals("Davies", "Muller", "Lewandowski", "Kimmich"); printGoals("Davies", "Muller"); printGoals(...game.scored); //7. Task Seven //--------------------My Solution-----------------------// // console.log(game.odds.team1 && game.team1); //---------------------Actual Solution------------------// team1 > team2 && console.log("Team 2 is likely to win"); team1 < team2 && console.log("Team 1 is likely to win");