我有一个从API获取JSON的函数(使用PHP获取)。我无法弄清楚我会按payload.time
对数据进行排序。 JSON是随机顺序的,因此.reverse()
没有做任何好的以太。我想知道如何按时间顺序对以下JSON进行排序?
{
"code":0,
"payload":[
{
"time":1349661897,
"packages":[
"49381"
],
"ign":"player1",
"price":"15.99",
"currency":"USD"
},
{
"time":1354504024,
"packages":[
"33109"
],
"ign":"player2",
"price":"6.99",
"currency":"USD"
}
}
这是我的JS:
var Donors = function(api) {
this.list = api;
$.each(this.list.payload.slice(0, 25), function(i, donor) {
var ign = donor.ign,
price = donor.price,
currency = donor.currency,
el = '<li id="' + ign + '" class="player big" data-player="' + ign + '" title="'+ ign + ' // ' + price + ' ' + currency + '">☺</li>';
if(price !== "-") $('#donors').append(el);
});
}
答案 0 :(得分:0)
您可以编写一个函数来对JSON数组进行排序:
function sortBy(jsonArray, key){
if(jsonArray){
var sortedArray = jsonArray.sort(function(left, right) {
//array.sort is buit-in function
var a = left[key];
var b = right[key];
if (a !== b) {
if (a > b || a === void 0) return 1;
if (a < b || b === void 0) return -1;
}
return 0;
});
return sortedArray;
}
}
用以下方法调用此函数:
sortBy(payload, 'time')
注意:未对代码段进行测试。