javascript - 如何确定哪支球队获胜,如果赢了就加3分,输了加0分,平局加1分
问题描述
我有一系列比赛结果,我需要根据得分来确定要为球队增加多少分。在这个例子中,法国得到 3 分,克罗地亚 0 分,英格兰和西班牙都得到 1 分。这是如何实现的,有人可以帮忙吗?
const matches = [
{
homeTeam: 'France',
awayTeam: 'Croatia',
score: '2:1',
date: '18.01.2019'
},
{
homeTeam: 'England',
awayTeam: 'Spain',
score: '1:1',
date: '18.01.2019'
}
];
function getRankings(games) {
// ...implementation
}
const footbalRankings = getRankings(matches);
console.log(footbalRankings);
输出应该是这样的:
[
{ team: 'France', points: 3 }
{ team: 'England', points: 1 }
{ team: 'Spain', points: 1 }
{ team: 'Croatia', points: 0 }
]
解决方案
const matches = [
{
homeTeam: 'France',
awayTeam: 'Croatia',
score: '2:1',
date: '18.01.2019'
}, {
homeTeam: 'England',
awayTeam: 'Spain',
score: '1:1',
date: '18.01.2019'
}
];
function getRankings(games) {
var ranks = {};
games.forEach(game => {
var [homeScore, awayScore] = game.score.split(':');
if (!ranks[game.homeTeam]) ranks[game.homeTeam] = { name: game.homeTeam, points: 0 };
if (!ranks[game.awayTeam]) ranks[game.awayTeam] = { name: game.awayTeam, points: 0 };
if (homeScore > awayScore) {
ranks[game.homeTeam].points += 3;
} else if (awayScore > homeScore) {
ranks[game.awayTeam].points += 3;
} else {
ranks[game.homeTeam].points++;
ranks[game.awayTeam].points++;
}
});
return Object.values(ranks).sort((a, b) => a.points > b.points ? -1 : 1);
}
var footbalRankings = getRankings(matches);
console.log(footbalRankings);
推荐阅读
- asp.net-mvc - 获取应用程序中所有已编译的 Razor 视图
- printing - Vala 打印输出仅在窗口关闭后在终端中可见
- c# - 为什么我在 idp 启动登录后被重定向到服务提供商的登录页面
- java - 类相关时如何在java中加载.class文件?
- c++ - C++ 中的圆形与方形碰撞检测和需要响应 | OpenGL。我的问题就是“我需要将圆圈保持在正方形之外”
- python - 在 Python 中操作 JSON 值
- javascript - jQuery Datatable preInit 事件未触发
- python - 绘制一系列频率的直方图
- angular - 无法读取未定义的属性“节点”
- r - 根据R中的其他行选择满足条件的行