Я хочу отсортировать двумерный массив сначала по столбцу 5, а затем по столбцу 4. Они представляют PTS и GD в таблице футбольной лиги.
var table = [
["teamA", 6, 2, 0, 2, 7],
["teamB", 6, 1, 1, 6, 7],
["teamC", 6, 2, 1, 8, 7]
];
Я адаптировал отличный совет, полученный на форуме:
Сортировка двумерного массива по числовому элементу
Я реплицировал функцию так, чтобы она сначала сортировалась по PTS, а затем по GD.
console.log(table.sort(comparePTS));
console.log(table.sort(compareGD));
function comparePTS(a, b) {
return b[5] - a[5]
}
function compareGD(a, b) {
return b[4] - a[4]
}
Хотя это работает, таблица отображается дважды:
Сортировка по PTS
[ [ "teamA", 6, 2, 0, 2, 7 ], [ "teamB", 6, 1, 1, 6, 7 ], [ "teamC", 6, 2, 1, 8, 7 ] ]
Сортировка по PTS и GD
[ [ "teamC", 6, 2, 1, 8, 7 ], [ "teamB", 6, 1, 1, 6, 7 ], [ "teamA", 6, 2, 0, 2, 7 ] ]
И это кажется самым неуклюжим решением. Каков наилучший способ достичь этого с помощью одной функции? Заранее спасибо.