首页 > 解决方案 > 如何确定哪支球队获胜,如果赢了就加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 }
]

标签: javascript

解决方案


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);


推荐阅读