js或jquery数组、json根据指定字段升序或降序排序

  • 时间:2019-04-09 17:36
  • 来源:本站原创
  • 作者:Mr.PAN
  • 阅读:976
js或jquery数组或json根据指定字段升序或降序排序,本文实例总结了js数组或json数据的排序技巧,分享给大家供大家参考,具体如下:

本文实例总结了js数组或json数据的排序技巧,分享给大家供大家参考,具体如下:

定义数据如下:

var array = [
    {name:"LiLei",   sex:'M', age:12},
    {name:"HanMei",  sex:'F', age:18},
    {name:"SunYang", sex:'M', age:13},
    {name:"XiaoHua", sex:'F', age:24}
];

排序方法一:

var desc = function(x,y)
{
    return (x[age] < y[age]) ? 1 : -1
}

var asc = function(x,y)
{
    return (x[age] > y[age]) ? 1 : -1
}

使用方法:

// 升序排序
console.log(array.sort(asc)); 
// 降序排序
console.log(array.sort(desc));

注意:排序方法一中的"age"表示排序的字段名,这里可以根据自己的数据指定排序字段;

排序方法二:

定义排序函数:

/**
* 指定数据排序
* @param  {int}    order 升序/降序(1或0)
* @param  {string} field 排序字段
* @return {arrayay}
*/
function sequence ( order, field )
{
    return function (list1,list2)
    {
        return order?(list1[field]<list2[field]?1:-1):(list1[field]>list2[field]?1:-1);
    }
}

使用方法:

// 升序排序
console.log(array.sort(sequence(1,'age')));
// 降序排序
console.log(array.sort(sequence(0,'age')));

注意:此方法中的"age"表示排序的字段名,1表示升序,0表示降序,这里可以根据自己的数据指定排序字段;

以上两种方法任选一种即可,排序的数据可以js定义的数组或者程序后台传递过来的json数据,都是可以正常排序的。

以上就是关于“js或jquery数组或json根据指定字段升序或降序排序”的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流。