|
| 1 | +var matches = data.matches || []; |
| 2 | +var teamFilter = context.objects[0] ? [].concat(context.objects[0].teamName)[0] || '' : ''; |
| 3 | + |
| 4 | +var groupMatches = matches.filter(function(m) { return m.group; }); |
| 5 | + |
| 6 | +var standings = {}; |
| 7 | + |
| 8 | +function ensureTeam(name, group) { |
| 9 | + if (!standings[name]) { |
| 10 | + standings[name] = { group: group, mp: 0, w: 0, d: 0, l: 0, gf: 0, ga: 0, pts: 0 }; |
| 11 | + } |
| 12 | +} |
| 13 | + |
| 14 | +groupMatches.forEach(function(m) { |
| 15 | + ensureTeam(m.team1, m.group); |
| 16 | + ensureTeam(m.team2, m.group); |
| 17 | + |
| 18 | + if (!m.score || !m.score.ft) return; |
| 19 | + |
| 20 | + var s1 = m.score.ft[0]; |
| 21 | + var s2 = m.score.ft[1]; |
| 22 | + var t1 = standings[m.team1]; |
| 23 | + var t2 = standings[m.team2]; |
| 24 | + |
| 25 | + t1.mp++; t2.mp++; |
| 26 | + t1.gf += s1; t1.ga += s2; |
| 27 | + t2.gf += s2; t2.ga += s1; |
| 28 | + |
| 29 | + if (s1 > s2) { |
| 30 | + t1.w++; t1.pts += 3; t2.l++; |
| 31 | + } else if (s2 > s1) { |
| 32 | + t2.w++; t2.pts += 3; t1.l++; |
| 33 | + } else { |
| 34 | + t1.d++; t1.pts++; t2.d++; t2.pts++; |
| 35 | + } |
| 36 | +}); |
| 37 | + |
| 38 | +var rows = Object.keys(standings).map(function(name) { |
| 39 | + var s = standings[name]; |
| 40 | + return { |
| 41 | + sourceId: name, |
| 42 | + team: name, |
| 43 | + group: s.group, |
| 44 | + mp: s.mp, w: s.w, d: s.d, l: s.l, |
| 45 | + gf: s.gf, ga: s.ga, gd: s.gf - s.ga, pts: s.pts |
| 46 | + }; |
| 47 | +}); |
| 48 | + |
| 49 | +if (teamFilter && standings[teamFilter]) { |
| 50 | + var targetGroup = standings[teamFilter].group; |
| 51 | + rows = rows.filter(function(r) { return r.group === targetGroup; }); |
| 52 | +} |
| 53 | + |
| 54 | +rows.sort(function(a, b) { |
| 55 | + if (a.group !== b.group) return a.group.localeCompare(b.group); |
| 56 | + if (b.pts !== a.pts) return b.pts - a.pts; |
| 57 | + if (b.gd !== a.gd) return b.gd - a.gd; |
| 58 | + return b.gf - a.gf; |
| 59 | +}); |
| 60 | + |
| 61 | +result = rows; |
0 commit comments