Tôi có một mảng trông giống như sau:Làm cách nào để tôi thực hiện sắp xếp tùy chỉnh phức tạp trong Ruby?
[
{ type: 'A', price: '0.01' },
{ type: 'B', price: '4.23' },
{ type: 'D', price: '2.29' },
{ type: 'B', price: '3.38' },
{ type: 'C', price: '1.15' }
]
tôi cần phải nhóm này bằng type
và sau đó sắp xếp chúng theo ascending price
. Tôi nửa có thể giải quyết vấn đề này bằng cách làm như sau:
boards.sort_by {|e| [e['type'], e['price'].to_f]}
Thật không may, điều này sắp xếp các type
s theo thứ tự abc khi họ cần được sắp xếp BADC
Làm thế nào để sắp xếp mảng theo các quy tắc được xác định trước?
câu hỏi không rõ ràng: đầu ra mong muốn là gì? cho các sản phẩm cùng loại có sản phẩm có giá thấp nhất? và sau đó luôn đặt hàng theo PRICE ASC? – tokland
Tôi nghĩ rằng anh ấy muốn sắp xếp theo loại, và nơi loại bằng nhau, anh ấy muốn sau đó sắp xếp theo giá. – sheldonh
@sheldonh. nhưng đó chính xác là mã của anh ấy. Sau đó, ông nói rằng đầu ra nên được đặt hàng "BADC" mà không có ý nghĩa (không có giá cũng không loại thứ tự ở đó ...) nhưng trong mọi trường hợp có vẻ như loại B đã được nhóm lại, vì vậy anh thực sự muốn một số nhóm. Ai biết được ... – tokland