0

很感谢任何形式的帮助。

基本上我使用的是来自 mashape 的 api,但我对 JSON 文件有点陌生。

我想要做的是为每个团队的总分创建一个 jquery 变量的负载。

请记住,团队根据他们在表格中的位置更改 JSON 文件中的位置。

下面是我到目前为止的 jquery 代码(没有 auth 代码)和 JSON 文件。

$.ajax({
url: 'https://heisenbug-premier-league-live-scores-v1.p.mashape.com/api/premierleague/table',
type: 'GET',
data: {},
dataType: 'json',
success: function(data) { 
  $(data.records).each(function(index, value) {



  });

  console.dir((data.source)); 
},
error: function(err) { alert(err); },
beforeSend: function(xhr) {
xhr.setRequestHeader("X-Mashape-Authorization", 
"Auth Code");
}
});

和 JSON 文件。

{
"records": [
{
  "team": "Manchester City",
  "played": 10,
  "win": 8,
  "draw": 0,
  "loss": 2,
  "goalsFor": 29,
  "goalsAgainst": 12,
  "points": 24
},
{
  "team": "Arsenal",
  "played": 10,
  "win": 7,
  "draw": 2,
  "loss": 1,
  "goalsFor": 16,
  "goalsAgainst": 6,
  "points": 23
},
{
  "team": "Tottenham",
  "played": 10,
  "win": 5,
  "draw": 4,
  "loss": 1,
  "goalsFor": 18,
  "goalsAgainst": 7,
  "points": 19
},
{
  "team": "Leicester",
  "played": 10,
  "win": 5,
  "draw": 4,
  "loss": 1,
  "goalsFor": 16,
  "goalsAgainst": 13,
  "points": 19
},
{
  "team": "Manchester United",
  "played": 10,
  "win": 5,
  "draw": 4,
  "loss": 1,
  "goalsFor": 12,
  "goalsAgainst": 4,
  "points": 19
},
{
  "team": "West Ham",
  "played": 10,
  "win": 4,
  "draw": 4,
  "loss": 2,
  "goalsFor": 16,
  "goalsAgainst": 12,
  "points": 16
},
{
  "team": "Liverpool",
  "played": 9,
  "win": 4,
  "draw": 3,
  "loss": 2,
  "goalsFor": 11,
  "goalsAgainst": 11,
  "points": 15
},
{
  "team": "Norwich",
  "played": 10,
  "win": 4,
  "draw": 3,
  "loss": 3,
  "goalsFor": 12,
  "goalsAgainst": 10,
  "points": 15
},
{
  "team": "Southampton",
  "played": 10,
  "win": 4,
  "draw": 2,
  "loss": 4,
  "goalsFor": 17,
  "goalsAgainst": 13,
  "points": 14
},
{
  "team": "Chelsea",
  "played": 10,
  "win": 4,
  "draw": 2,
  "loss": 4,
  "goalsFor": 15,
  "goalsAgainst": 14,
  "points": 14
},
{
  "team": "West Bromwich Albion",
  "played": 11,
  "win": 4,
  "draw": 2,
  "loss": 5,
  "goalsFor": 14,
  "goalsAgainst": 17,
  "points": 14
},
{
  "team": "Crystal Palace",
  "played": 11,
  "win": 4,
  "draw": 2,
  "loss": 5,
  "goalsFor": 12,
  "goalsAgainst": 12,
  "points": 14
},
{
  "team": "Watford",
  "played": 11,
  "win": 4,
  "draw": 2,
  "loss": 5,
  "goalsFor": 11,
  "goalsAgainst": 10,
  "points": 14
},
{
  "team": "Stoke",
  "played": 9,
  "win": 4,
  "draw": 1,
  "loss": 4,
  "goalsFor": 10,
  "goalsAgainst": 9,
  "points": 13
},
{
  "team": "Swansea",
  "played": 10,
  "win": 3,
  "draw": 4,
  "loss": 3,
  "goalsFor": 9,
  "goalsAgainst": 12,
  "points": 13
},
{
  "team": "Everton",
  "played": 11,
  "win": 3,
  "draw": 4,
  "loss": 4,
  "goalsFor": 23,
  "goalsAgainst": 20,
  "points": 13
},
{
  "team": "Sunderland",
  "played": 10,
  "win": 3,
  "draw": 2,
  "loss": 5,
  "goalsFor": 12,
  "goalsAgainst": 11,
  "points": 11
},
{
  "team": "Bournemouth",
  "played": 9,
  "win": 2,
  "draw": 4,
  "loss": 3,
  "goalsFor": 10,
  "goalsAgainst": 13,
  "points": 10
},
{
  "team": "Newcastle United",
  "played": 10,
  "win": 2,
  "draw": 4,
  "loss": 4,
  "goalsFor": 14,
  "goalsAgainst": 14,
  "points": 10
},
{
  "team": "Aston Villa",
  "played": 9,
  "win": 0,
  "draw": 3,
  "loss": 6,
  "goalsFor": 6,
  "goalsAgainst": 13,
  "points": 3
}
]
}

非常感谢!

4

1 回答 1

0

要创建一个对象并添加每个团队的总分,您需要创建一个映射(键/值),其中键是每个团队的名称,值是每个团队的总分。

我将您的数据托管在MyJSON上。

这是一个从远程服务器检索数据的函数,并初始化一个包含每个团队总分的对象:

function getData() {
  // https://api.myjson.com/bins/1c6utx
  var teamScores = {};

  $.get("https://api.myjson.com/bins/1c6utx", function(data, status){
    $.each(data.records, function(index, value) {
      if (!teamScores[value.team]) {
        teamScores[value.team] = 0;
      }

      teamScores[value.team] += value.points;
    });

    console.log(JSON.stringify(teamScores));
  });
}

/* Output:
{"Manchester City":24,"Arsenal":23,"Tottenham":19,"Leicester":19,"Manchester United":19,"West Ham":16,"Liverpool":15,"Norwich":15,"Southampton":14,"Chelsea":14,"West Bromwich Albion":14,"Crystal Palace":14,"Watford":14,"Stoke":13,"Swansea":13,"Everton":13,"Sunderland":11,"Bournemouth":10,"Newcastle United":10,"Aston Villa":3}
*/

您可以检查此小提琴以查看它的实际效果。希望这可以帮助!

于 2017-08-24T00:08:36.817 回答