Tôi thực sự muốn xử lý điều này mà không cần vá khỉ nhưng tôi chưa thể tìm thấy một tùy chọn khác.Làm cách nào để sắp xếp theo nhiều điều kiện với các đơn đặt hàng khác nhau?
Tôi có một mảng (trong Ruby) mà tôi cần sắp xếp theo nhiều điều kiện. Tôi biết cách sử dụng phương pháp sắp xếp và tôi đã sử dụng mẹo để sắp xếp bằng cách sử dụng một loạt các tùy chọn để sắp xếp theo nhiều điều kiện. Tuy nhiên, trong trường hợp này tôi cần điều kiện đầu tiên để sắp xếp tăng dần và thứ hai để sắp xếp giảm dần. Ví dụ:
ordered_list = [[1, 2], [1, 1], [2, 1]]
Mọi đề xuất?
Chỉnh sửa: Chỉ cần nhận ra tôi nên đề cập đến rằng tôi không thể dễ dàng so sánh giá trị đầu tiên và thứ hai (tôi thực sự đang làm việc với các thuộc tính đối tượng ở đây). Vì vậy, đối với một ví dụ đơn giản nó giống như hơn:
ordered_list = [[1, "b"], [1, "a"], [2, "a"]]
ví dụ đã sửa đổi của bạn có thể được xử lý giống hệt với mẫu đầu tiên bạn đăng. Toán tử <=> sẽ hoạt động trên bất kỳ đối tượng nào giống nhau (trong trường hợp của bạn, các đối tượng Integer và String đều có thể được so sánh với <=> tốt) –
Đúng, tôi nghĩ nó nên đề cập đến nó hơn là rủi ro khi đơn giản hóa vấn đề. –