Array#max_by
只返回一個值,但我想讓所有具有最大值的值。如何在方法內使用&proc參數
hashes = [{a: 1, b:2}, {a:2, b:3}, {a:1, b:3}]
max = hashes.map{|h| h[:b]}.max
hashes.select{|h| h[:b] == max}
# => [{a: 2, b: 3}, {a: 1, b: 3}]
此代碼工作正常,我想將它添加到Array
類。
class Array
def max_values_by(&proc)
max = map(&proc).max
# I don't know how to use `select` here.
end
end
如何訪問&proc
參數的值?
解決你的問題更直接的方式是在這裏:HTTP:/ /stackoverflow.com/questions/22115956。 – sawa
順便說一下,'&block'是這個變量的一個更常見的名稱。 – Stefan
我同意@Stefan。使用'proc'這個名字會引起誤解,因爲可能期望它包含lambda或非lambda Proc實例。 –