紅寶石有Enumerable#max
和Enumerable#max_by
,我以下面的方式使用max_by
。在具有相同最大值的多於一個的情況下獲得最大數組
array = [
{:a => 1, :b => 2, :c => 3},
{:a => 3, :b => 2, :c => 4},
{:a => 3, :b => 1, :c => 4}
]
max_item = array.max_by { |item| item[:b] }
=> {:b=>2, :c=>3, :a=>1}
所以它將單個最大值(我認爲第一)返回,即使有2項與相同的最大值。我想實現一個在這種情況下提供這兩個項目的函數。有沒有max_by
的其他變體,還是我需要從頭開始編寫這個?
不知道有關'group_by';整齊。 – Chowlett 2012-02-08 15:53:37
我知道'group_by',但無法通過這個邏輯思考..我不得不閱讀這個帖子兩次以獲得邏輯..splendid! – rubyprince 2012-02-08 17:15:41