我有一个对象数组,每个对象的形式如下:
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'
进行排序。