Tôi có một mảng mulitdimensional như vậy:Sorting: Sắp xếp mảng dựa trên nhiều điều kiện trong Ruby
[
[name, age, date, gender]
[name, age, date, gender]
[..]
]
Tôi đang tự hỏi là cách tốt nhất để sắp xếp mảng này dựa trên nhiều điều kiện ... Ví dụ, làm thế nào tôi có sắp xếp dựa theo số tuổitrước tiên sau đó theo tên không?
tôi đã rối tung xung quanh với các phương pháp sort
như vậy:
array.sort { |a,b| [ a[1], a[0] ] <=> [ b[1], b[0] ] }
Bên cạnh đó tôi không thực sự hiểu cú pháp này, tôi không nhận được kết quả tôi mong đợi. Tôi có nên sử dụng phương pháp sort
không? Tôi có nên so sánh kết quả riêng lẻ theo mapping
mảng không?
có thể trùng lặp [Sắp xếp tập hợp các đối tượng theo số (cao nhất trước) rồi theo chữ cái (chữ cái)] (http: // stackoverflow.com/questions/2232470/sort-a-collection-of-objects-by-number-highest-first-then-by-letter-alphabeti) –
@pruett: không thiếu tôn trọng câu trả lời của robbrit, nhưng bạn nên cân nhắc lựa chọn câu trả lời, không có gì sai với việc sử dụng Enumerable # sort * trừ * khi Enumerable # sort_by thực hiện công việc. Điều này có thể gây hiểu lầm cho những người hạ cánh ở đây. – tokland
Có thể trùng lặp [Ruby sắp xếp theo nhiều giá trị?] (Http://stackoverflow.com/questions/4309723/ruby-sort-by-multiple-values) – jtbandes