У меня есть mulitdimensional массив так:Сортировка: Сортировка массива на основе нескольких условий в Рубине
[
[name, age, date, gender]
[name, age, date, gender]
[..]
]
Я интересно, лучший способ сортировки этого массива на основе нескольких условий ... Например, как я бы сортировал на основе возрастпервый, то по названию?
я бездельничал с методом sort
следующим образом:
array.sort { |a,b| [ a[1], a[0] ] <=> [ b[1], b[0] ] }
Кроме того, я не очень понимаю, этот синтаксис, я не получаю результаты, которые я бы ожидать. Должен ли я использовать метод sort
? Должен ли я отдельно сравнивать результаты по mapping
массиву?
возможно дубликат [Сортировка коллекции объектов по количеству (по убывающей), то по букве (алфавитного)] (Http: // stackoverflow.com/questions/2232470/sort-a-collection-of-objects-by-number-highest-first-then-by-letter-alphabeti) –
@pruett: неуважение к ответу robbrit, но вы должны рассмотреть выбранный ответ, нет ничего плохого в использовании Enumerable # sort * except *, когда Enumerable # sort_by выполняет задание. Это может ввести в заблуждение для людей, приземляющихся здесь. – tokland
Возможный дубликат [Ruby sort by multiple values?] (Http://stackoverflow.com/questions/4309723/ruby-sort-by-multiple-values) – jtbandes