在表中排序JSON数据

时间:2013-06-12 14:29:07

标签: javascript jquery json

我正在创建一个“排行榜”页面作为Facebook游戏的外部组件。

基本上,应用程序通过给定的JSON响应文件传递数据('score.json'包含具有三个键的数据对象:Name,Team,Score),我使用下面的代码将其解析为HTML表:

$(document).ready(function(){
    $.getJSON("score.json",
    function (data) {
        var tr;
        for (var i = 0; i < data.length; i++) {
            tr = $('<tr/>');
            tr.append("<td>" + data[i].User_Name + "</td>");
            tr.append("<td>" + data[i].score + "</td>");
            tr.append("<td>" + data[i].team + "</td>");
            $('table').append(tr);
        }
    });
});

我需要做什么:

  • 根据“得分”值以降序显示这些表格行。
  • 添加“rank”列,其中每行插入动态生成的数字

我只是一个JavaScript的初学者,所以任何帮助都会非常感激。

编辑:解决了。最终代码如下:

$(document).ready(function(){
    $.getJSON("score.json",
    function (data) {
        var tr;

        data.sort(function(a,b) { return parseFloat(b.score) - parseFloat(a.score) } );

        var rank = 1;

        for (var i = 0; i < data.length; i++) {
            tr = $('<tr/>');
            tr.append("<td>" + rank + "</td>");
            tr.append("<td>" + data[i].User_Name + "</td>");
            tr.append("<td>" + data[i].score + "</td>");
            tr.append("<td>" + data[i].team + "</td>");
            $('table').append(tr);
            rank = rank +1;
        }
    });
});

1 个答案:

答案 0 :(得分:3)

您可以使用它来对数组进行排序:

json.sort(function(a,b) { return parseFloat(b.score) - parseFloat(a.score) } );

这是jsFiddle