2016-04-15 3 views
1

В настоящее время я делаю приложение для оценки гольф-поля, и я ищу, чтобы отсортировать результаты каждого игрока по их общей оценке.Сортируйте группу ассоциированных массивов по одному значению в каждом массиве

например, если у меня есть следующие массивы:

array1 = { 
    name: "player1", 
    overall: -3 
} 

array2 = { 
    name: "player2", 
    overall: -1 
} 

Как я могу сортировать их, так что я могу вывести ранг каждого игрока в зависимости от того, кто получил лучший результат в то же время сохраняя значение имени?

Любая помощь была бы принята с благодарностью.

+2

Те * объекты *, а не массивы. Создайте фактический * массив * таких объектов и отсортируйте массив, используя его метод '.sort' (' var players = [{name: ...}, {name: ...}]; '). – deceze

ответ

2

С надлежащей структурой данных для Arrays, вы можете сортировать их с полями Array#sort.

var object1 = { name: "player1", overall: -3 }, 
 
    object2 = { name: "player2", overall: -1 }, 
 
    array = [object1, object2]; 
 

 
array.sort(function (a, b) { return a.overall - b.overall; }); 
 

 
document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

+0

OP, вероятно, хочет, чтобы они отсортировались в противоположном порядке, я предполагаю. –

+0

@MarkReed, «* вывести ранг каждого игрока в зависимости от того, кто получил лучший результат *», более отрицательное значение хорошее ...? –

+1

Yup. Это гольф. Чем ниже оценка, тем лучше. –

Смежные вопросы