tengo una matriz mulitdimensional así:Clasificación: Ordenar un array basado en múltiples condiciones en Ruby
[
[name, age, date, gender]
[name, age, date, gender]
[..]
]
Me pregunto la mejor manera de solucionar esta matriz basada en múltiples condiciones ... Por ejemplo, ¿cómo ¿ordenaría basado en edadprimero y luego por su nombre?
me estaba metiendo con el método sort
así:
array.sort { |a,b| [ a[1], a[0] ] <=> [ b[1], b[0] ] }
Además de que yo no entiendo muy bien esta sintaxis, no estoy consiguiendo los resultados que cabe esperar. ¿Debo usar el método sort
? ¿Debo comparar individualmente los resultados por mapping
la matriz?
posible duplicado de [ordenado una colección de objetos por número (más caros primero) y luego por carta (por orden alfabético)] (http: // stackoverflow.com/questions/2232470/sort-a-collection-of-objects-by-number-highest-first-then-by-letter-alphabeti) –
@pruett: no hay falta de respeto por la respuesta de robbrit, pero debe considerar el seleccionado responda, no hay nada de malo en usar Enumerable # sort * excepto * cuando Enumerable # sort_by hace el trabajo. Esto puede ser engañoso para las personas que aterricen aquí. – tokland
Posible duplicado de [Ruby ordenar por valores múltiples?] (Http://stackoverflow.com/questions/4309723/ruby-sort-by-multiple-values) – jtbandes