题目
我们正在开发一个足球投注应用程序!
假设我们从一个网络服务获取了一场比赛的数据(如下所示)。在这个挑战中,我们将处理这些数据。这里是你的任务:
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,
},
};
- 为每个队伍创建一个球员数组(变量’players1’和’players2’)。
- 任何球员数组中的第一个球员都是守门员,其他的是场上球员。对于拜仁慕尼黑(team 1),创建一个变量(‘gk’)存储守门员的名字,并创建一个数组(‘fieldPlayers’)存储剩下的10个场上球员。
- 创建一个包含两支队伍所有球员的数组(22名球员)(‘allPlayers’)。
- 在比赛中,拜仁慕尼黑(team 1)使用了3名替补球员。因此创建一个新数组(‘players1Final’),包含所有原始的team1球员以及’Thiago’、‘Coutinho’和’Perisic’。
- 基于game.odds对象,为每个赔率创建一个变量(分别叫’team1’、‘draw’和’team2’)。
- 编写一个函数(‘printGoals’),该函数接收任意数量的球员名字(不是一个数组),并将每个球员名字及进球总数(传入的球员名字数量)打印到控制台。
- 没有使用if/else语句或三元运算符,通过打印到控制台判断哪个队伍更有可能获胜,即赔率较低的队伍更有可能获胜。
6号测试数据:使用球员’Davies’、‘Muller’、‘Lewandowski’和’Kimmich’。然后再次调用函数,传入game.scored中的球员名字。
祝你好运 😀
答案示例
1.
当然,我们将使用解构的方式来获取球员;
const [players1,players2] = game.players;
console.log(players1,players2);
2.
这个我们仍然采用解构+rest的方式来获取第一个和后面的数据
const [gk, ...fieldPlayers] = players1;
console.log(gk,fieldPlayers);
3.
我们将使用扩展运算符的方式来获取所有的球员
const allPlayers = [...players1,...players2];
console.log(allPlayers);
4.
这个就很简单了,还是使用扩展运算符
const players1Final = [...players1,"Thiago","Coutinho","Perisic"];
console.log(players1Final);
5.
现在我们将采用解构对象的方式来实现,并且对象方法中只有x,没有draw这个变量,我们将采用修改默认名称的方式
const {odds:{team1,x:draw,team2}} = game;
console.log(team1,draw,team2);
6.
希望你能够记得我们之前使用扩展运算符可以向函数传入的每一个给与的数据
const printGoals = function(...players) {
console.log(`${players.length}个球员取得了分数`);
}
printGoals('Davies','Muller','Lewandowski','Kimmich');
printGoals('Davies','Muller');
printGoals(...game.scored);
7.
不给用if,不给用三元,意思非常的明显,使用逻辑运算符来实现,我们将使用&&,如果第一个flase的话,就立即返回她,如果不是的话,就返回后面一个
team1 < team2 && console.log("team1获胜的几率更大");
team2 < team1 && console.log*("team2获胜的几率更大");