我有一个以下形式的对象数组:
arr[0] = { 'item1' : 1234, 'item2' : 'a string' };
我首先根据'item1'
对它进行排序,这很简单。现在,我想再次对arr
(按'item1'
排序)进行排序,但这次是按'item2'
排序,但仅针对'item1'
相同的元素。最终的数组将如下所示:
arr = [
{ 'item1' : 1234, 'item2' : 'apple' },
{ 'item1' : 1234, 'item2' : 'banana' },
{ 'item1' : 1234, 'item2' : 'custard' },
{ 'item1' : 2156, 'item2' : 'melon' },
{ 'item1' : 4345, 'item2' : 'asparagus' }
];
我尝试为第二种情况编写一个排序函数,如下所示:
arr.sort(function(a,b){
if(a.item1 === b.item1){
return a.item2 > b.item2 ? 1 : a.item2 < b.item2 : -1 : 0;
}
});
我可以在一个函数中组合这两个排序,以获得最终的排序数组,但在某些情况下,我必须仅按'item1'
或'item2'
排序。
https://stackoverflow.com/questions/7157590
复制相似问题