【发布时间】:2025-11-29 07:10:01
【问题描述】:
我有一个函数是在 4 组中添加 16 支得分最高的足球队。每组必须有 4 支球队,同一联赛的球队不得超过 2 支。
我在arr 中的联赛名称的每个团队对象中添加了一个属性,并按最高点数对其进行排序。
我不知道如何设置一组不能超过 2 支球队来自一个联赛的条件?
JSFIDDLE 链接:http://jsfiddle.net/6jdjjqfw/
代码:
var tournaments = ['bundes', 'league1', 'premier', 'primera', 'seriea'];
var teams = [];
var groups = [];
function getData(id) {
var url = "http://api.helloworld.ba/n/app.php?f=" + id;
return $.getJSON(url);
}
var AJAX = [];
for (i = 0; i < tournaments.length; i++) {
AJAX.push(getData(tournaments[i]));
}
$.when.apply($, AJAX).done(function () {
for (var i = 0, len = arguments.length; i < len; i++) {
teams.push(arguments[i][0]);
}
createGroups(teams);
});
function createGroups(teams) {
var
arr = [],
arra = [],
arrb = [],
arrc = [],
arrd = [],
br = 1;
for (i = 0; i < teams.length; i++)
for (var j = 0; j < teams[i].standing.length; j++) {
teams[i].standing[j].league = teams[i].leagueCaption;
arr.push(teams[i].standing[j]);
}
arr.sort(function (a, b) {
return b.points - a.points;
});
for (i = 0; i < 4; i++)
{
arra.push(arr[i].teamName);
arrb.push(arr[i+4].teamName);
arrc.push(arr[i+8].teamName);
arrd.push(arr[i+12].teamName);
}
groups.push(arra);
groups.push(arrb);
groups.push(arrc);
groups.push(arrd);
console.log(teams);
console.log(arr);
console.log("Groups listed:\n\n");
for(i=0; i<groups.length;i++)
{
console.log("Group " + br +" " + groups[i]);
br++;
}
}
【问题讨论】:
-
只需在
league => count地图中保留一个计数器,然后在添加团队之前检查是否有counter[league] <= 2。如果是,请添加团队并增加计数器。如果没有,做你想做的任何其他事情。
标签: javascript jquery arrays ajax