我有一個數組,看起來像下面這樣:如何在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' }
]
我需要這些組由type
,然後通過上升price
排序。我可以做一半解決這個問題如下:
boards.sort_by {|e| [e['type'], e['price'].to_f]}
不幸的是,這個字母順序排列的type
時候,他們應該被排序BADC
如何按預先確定的規則數組排序?
問題不清楚:什麼是期望的輸出?對於相同類型的產品獲得價格最低的產品?然後總是通過PRICE ASC訂購? – tokland
我認爲他想按照類型進行排序,並且在類型相同的情況下,他希望按價格進行排序。 – sheldonh
@sheldonh。但這正是他的代碼所做的。然後他說,輸出應該命令「BADC」,這是沒有意義的(沒有價格,也沒有輸入順序),但無論如何,似乎B型已經分組,所以他真的想要一些分組。誰知道... – tokland