-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
146 lines (139 loc) · 4.88 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
"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");