我想对清单进行排序。
我有这个JSON,

{
    "ships": [{
        "Code": "s01",
        "Quantity": "10",
        "Desc": "Ship 1",
        "Date": "Jul 01 2016"
    },{
        "Code": "s03",
        "Quantity": "4",
        "Desc": "Ship 2",
        "Date": "Jul 03 2016"
    },{
        "Code": "s02",
        "Quantity": "2",
        "Desc": "Ship 4",
        "Date": "Jul 02 2016"
    }]
}


如何按日期,代码或字母顺序对其进行排序?

我可以使用jQuery。我尝试了这段代码,

var element = ...;
element.Sort();


它不起作用。

最佳答案

您只需要实现自己的sort()逻辑即可。尝试这个:

data.ships.sort(function(a, b) {
    return a.Date < b.Date ? -1 : a.Date > b.Date ? 1 : 0;
});


Example fiddle

您可以根据需要更改对象的属性。您甚至可以将其放入函数中以保持代码DRY:

function sortByProperty(array, propName) {
    array.sort(function(a, b) {
        return a[propName] < b[propName] ? -1 : a[propName] > b[propName] ? 1 : 0;
    });
}

sortByProperty(data.ships, 'Code');

09-25 18:39
查看更多