javascript – 如何使用两个键来排序JSON对象?

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用两个键来排序JSON对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 JSON对象,我想先按一个键排序,然后再按类似于sql中的两列排序的第二个键.以下是我的JSON示例:
{
   "GROUPID":3169675,"LASTNAME":"Chantry"
}

我想订购GROUPID的所有结果,然后由LASTNAME命令.我使用JSON排序功能按一个键进行排序,但不是多个.

任何帮助都会很棒.

解决方法

假设你有一个对象数组:
var data = [
    { "GROUPID":3169675,"LASTNAME":"Chantry" },{ "GROUPID":3169612,"LASTNAME":"Doe" },...
];

您可以使用自定义比较器进行排序.要按GROUPID排序,然后由LASTNAME排序,比较两个对象的逻辑是:

if GROUPID of first is smaller than second
    return -1;
else if GROUPID of first is larger than second
    return 1;
else if LASTNAME of first is smaller than second
    return -1;
else if LASTNAME of first is larger than second
    return 1;
else
    return 0;

要对对象数组进行排序,请使用上述算法并在数组上调用sort方法.排序完成后,数据应按要求排序顺序排列.

data.sort(function(a,b) {
    // compare a and b here using the above algorithm
});

这是另一个非常similar question我最近回答.这是关于使用jQuery对多个列进行排序,但是您可以轻松地删除jQuery部分.它提供了可以扩展到多个列的一些可定制的方法.

猜你在找的JavaScript相关文章