如何按最新到最旧的id值对JSON进行排序

时间:2016-09-10 03:28:54

标签: javascript arrays json sorting

如何根据ID最新到最旧的值对JSON进行排序?

HTML:

<script>
 $(document).ready(function() {
    var url = "json.php";
        $.getJSON(url, function(result) {
        console.log(result);
        $.each(result, function(i, field) {
           var id = field.id;
           var name = field.name;
           var category = field.category;
             $("#show_data").append("<li class='item'>"+"<div>"+ id +"</div>"+  "<p>"+  name +"</p>" +"<p>" +  category +"</p></li>");
        });
    });
});</script><body><ul><div id="show_data"></div><ul>

Json.php:

[{
    "id": "1",
    "name": "Mary",
    "category": "eng"
}, {
    "id": "2",
    "name": "Peter",
    "category": "super"
}, {
    "id": "3",
    "name": "Ben",
    "category": "math"
}]

结果:

id:1
name:Mary
category:eng

id:2
name:Peter
category:super

id:3
name:Ben
category:math

我希望结果为:

id:3
name:Ben
category:math

id:2
name:Peter
category:super
id:1

name:Mary
category:eng

id:3 --> id-->2 id:--1

2 个答案:

答案 0 :(得分:1)

在操作dom之前按result的降序对id进行排序

var sortedResult = result.sort(function(a, b) {
  return b.id - a.id
})
$.each(sortedResult, function(i, field) {
  // Rest of the code
});

答案 1 :(得分:0)

如果您只是希望它以相反的顺序显示,则可以使用$("show_data").prepend(data)。这将在div的顶部插入最后一个数据,在底部插入第一个数据。