我有一个功能,即增加了16支足球队,分为4组。每个小组必须有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++;
}
}
答案 0 :(得分:0)
尝试这样做:
在while循环中迭代团队(16项)
在1到4之间的随机int上使用开关来选择每个团队的组
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
添加一个方法来测试一个团队是否已经有2个联盟成员,然后再将其添加到该组中。如果小组未满,也要测试(4名成员)如果方法返回false,则不要将小组添加到小组并且不增加小组计数器,您将获得一个新的随机数在你的循环中。