【问题标题】:Loop through Objects, duplicate show only once循环遍历对象,仅重复显示一次
【发布时间】:2017-11-09 07:36:08
【问题描述】:
 var fixtures = [
        {
          "matchday": 1,
            "homeTeamName": "Arsenal FC",
            "awayTeamName": "Leicester City FC"
          },
           {
          "matchday": 1,
              "homeTeamName": "AFC Bournemouth",
              "awayTeamName": "Watford FC",
          },
            {


            "matchday": 1,
                "homeTeamName": "Burnley FC",
                  "awayTeamName": "West Bromwich Albion FC",
              },
               {
              "matchday": 1,
                "homeTeamName": "Leicester City FC",
                  "awayTeamName": "Brighton & Hove Albion",
              },
             {
               "matchday": 2,
                  "homeTeamName": "Liverpool FC",
                  "awayTeamName": "Crystal Palace FC",
              },
               {
               "matchday": 2,
                  "homeTeamName": "Stoke City FC",
                  "awayTeamName": "Arsenal FC",
              },

            ];

我有这段代码,我想在相邻行中显示所有具有相同比赛日的球队,这意味着比赛日将显示在第一行,然后是当天比赛的球队。

我试过了

var x = '';

for(var key in fixtures){
                x += '<tr><th colspan="2">Match Day: ' + fixtures[key].matchday + '</th></tr>'+
                '<tr><td>' + fixtures[key].homeTeamName + '</td>' + 
                '<td>' + fixtures[key].awayTeamName + '<td></tr>';

            }


$("#test").html(x);

但是得到了this

【问题讨论】:

  • 请向我们展示您的尝试,记住 StackOverflow 不是编码服务
  • 好的,检查我的编辑版本。谢谢

标签: javascript jquery json ajax rest


【解决方案1】:

你可以这样做,这只会在新的比赛日宣传“比赛日”。

var mday = 0;
for (var key in fixtures) {
  if (mday != fixtures[key].matchday) {
    mday = fixtures[key].matchday
    x += '<tr><th colspan="2">Match Day: ' + fixtures[key].matchday + '</th></tr>';
  }

  x += '<tr><td>' + fixtures[key].homeTeamName + '</td>' +
    '<td>' + fixtures[key].awayTeamName + '<td></tr>';

}

演示

var fixtures = [{
    "matchday": 1,
    "homeTeamName": "Arsenal FC",
    "awayTeamName": "Leicester City FC"
  },
  {
    "matchday": 1,
    "homeTeamName": "AFC Bournemouth",
    "awayTeamName": "Watford FC",
  },
  {


    "matchday": 1,
    "homeTeamName": "Burnley FC",
    "awayTeamName": "West Bromwich Albion FC",
  },
  {
    "matchday": 1,
    "homeTeamName": "Leicester City FC",
    "awayTeamName": "Brighton & Hove Albion",
  },
  {
    "matchday": 2,
    "homeTeamName": "Liverpool FC",
    "awayTeamName": "Crystal Palace FC",
  },
  {
    "matchday": 2,
    "homeTeamName": "Stoke City FC",
    "awayTeamName": "Arsenal FC",
  },

];

var x = '';
var mday = 0;

for (var key in fixtures) {
  if (mday != fixtures[key].matchday) {
    mday = fixtures[key].matchday
    x += '<tr><th colspan="2">Match Day: ' + fixtures[key].matchday + '</th></tr>';
  }

  x += '<tr><td>' + fixtures[key].homeTeamName + '</td>' +
    '<td>' + fixtures[key].awayTeamName + '<td></tr>';

}


$("#test").html(x);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="test"></table>

【讨论】:

  • 谢谢一百万。
  • @Ahmed 没问题,很乐意提供帮助
【解决方案2】:

如果您的数组按比赛日排序(必须排序),您可能会记住前一项的比赛日并将其与当前比赛日进行比较。一旦它有所不同 - 您正在为上一节添加结束标签并开始新的。

【讨论】:

    猜你喜欢
    • 2021-10-19
    • 2016-07-08
    • 2015-03-18
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多