2016-01-13 64 views
2

我正在閱讀一些json數據並將其列在我的頁面上。jQuery Json按json值中的最大數字排序的列表

一個在JSON數據的值是得分......「val.score」

這告訴我用戶名的成績。

我也加了一個count變量。

我需要做什麼來以最高的用戶分數開始排序。

這裏是我當前的代碼:

var count = 1; 
$.each(jsonData.listing, function(key, val) { 

    $("#output").append('<li>Rank'+count+' username'+val.username+'score'+val.score+'</li>'); 

    count++; 
}); 
+0

你可以將它們推入一個數組中。分數變成你的索引,然後你在for-in-loop中遍歷這個數組。 – leguano

回答

6

使用sort

var count = 1; 
var listing = jsonData.listing.sort(function (a, b) { return b.score - a.score; }); 
$.each(listing, function(key, val) { 

    $("#output").append('<li>Rank'+count+' username'+val.username+'score'+val.score+'</li>'); 
    count++; 
}); 
2

簡單排序您的物品,你通過它去($。每個)前:

jsonData.listing.sort(function(x,y){ 
    if(x.score === y.score) return 0; 
    return x.score < y.score ? 1 : -1; 
});