我有一个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
应该具有要求的排序顺序的元素。data.sort(function(a, b) {
// compare a and b here using the above algorithm
});
这是我最近回答的另一个非常similar question。这是关于使用jQuery对多列进行排序的方法,但是您可以轻松剥离jQuery部分。它提出了一些可定制的方法,这些方法可以扩展到多列。
关于javascript - 如何通过两个键订购JSON对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3230028/