JavaScript对象和数组

时间:2015-04-29 13:51:05

标签: javascript jquery arrays ajax

我有一个功能,即增加了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++;
    }
}

1 个答案:

答案 0 :(得分:0)

尝试这样做:

  • 在while循环中迭代团队(16项)

  • 在1到4之间的随机int上使用开关来选择每个团队的组

    function getRandomInt(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    
  • 添加一个方法来测试一个团队是否已经有2个联盟成员,然后再将其添加到该组中。如果小组未满,也要测试(4名成员)如果方法返回false,则不要将小组添加到小组并且不增加小组计数器,您将获得一个新的随机数在你的循环中。