У меня есть массив объектов следующего вида:
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'
.