如何从哈希数组中获取最新的日期值

iro*_*and 1 ruby ruby-on-rails

我有一系列像这样的哈希:

hashes = [{date: Date.today, value: 1},
          {date: Date.today - 1.day, value: 2},
          {date: Date.today - 2.day, value: 3},
          {date: Date.today + 1.day, value: 4}
]
Run Code Online (Sandbox Code Playgroud)

我想得到最近的约会.我可以得到:

hashes.sort{|i| i[:date]}.first[:date]
# => Sat, 27 Feb 2016
Run Code Online (Sandbox Code Playgroud)

但我觉得这有点多余.有没有更好的方法来实现这种行为?

saw*_*awa 6

你可以这样做:

hashes.max_by{|h| h[:date]}[:date]
Run Code Online (Sandbox Code Playgroud)

要么

hashes.map{|h| h[:date]}.max
Run Code Online (Sandbox Code Playgroud)