JSON,按播放的会话总数排序,输出前3名

JSON, sort by totalSessionsPlayed and output top 3

本文关键字:排序 输出 3名 会话 播放 JSON      更新时间:2024-04-08

我正在尝试按"totalSessionsPlayed"对json进行排序,然后将前3个输出到我的div"show"中。

我想,只要我能对JSON进行排序(我不知道怎么做),我就可以输出前3个对象。

小提琴:https://jsfiddle.net/jzhang172/wjL0wL5b/1/

var homes =  [{
   "modifyDate": 1460338936000,
   "champions": [
      {
         "id": 40,
         "stats": {
            "totalDeathsPerSession": 11,
            "totalSessionsPlayed": 4,
            "totalDamageTaken": 62347,
            "totalQuadraKills": 0,
            "totalTripleKills": 0,
            "totalMinionKills": 57
           
         }
      },
      {
         "id": 75,
         "stats": {
            "totalDeathsPerSession": 6,
            "totalSessionsPlayed": 1,
            "totalDamageTaken": 44536,
            "totalQuadraKills": 0,
            "totalTripleKills": 0,
            "totalMinionKills": 222
         }
      },
      {
         "id": 113,
         "stats": {
            "totalDeathsPerSession": 18,
            "totalSessionsPlayed": 2,
            "totalDamageTaken": 104626,
            "totalQuadraKills": 0,
            "totalTripleKills": 0,
            "totalMinionKills": 94
         }
      },
      {
         "id": 9,
         "stats": {
            "totalDeathsPerSession": 30,
            "totalSessionsPlayed": 7,
            "totalDamageTaken": 174482,
            "totalQuadraKills": 0,
            "totalTripleKills": 0,
            "totalMinionKills": 239
         }
      },
      {
         "id": 254,
         "stats": {
            "totalDeathsPerSession": 9,
            "totalSessionsPlayed": 1,
            "totalDamageTaken": 27748,
            "totalQuadraKills": 0,
            "totalTripleKills": 0,
            "totalMinionKills": 26
         }
      }]
      }
      ];
document.getElementById('show').innerHTML=homes[0].champions[0].id + ' '+homes[0].champions[1].id+ ' '+homes[0].champions[2].id;
<div id="show"></div>

您可以使用以下代码对对象进行排序:

homes[0].champions.sort(function(a, b) {
    return parseFloat(a.stats.totalSessionsPlayed) - parseFloat(b.stats.totalSessionsPlayed);
});

对于降序,您需要切换a.stats.totalSessionsPlayedb.stats.totalSessionsPlayed