Ruby on rails 如何从哈希数组中获取最近的日期值
我有这样一个哈希数组:Ruby on rails 如何从哈希数组中获取最近的日期值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有这样一个哈希数组: 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} ] 我想知道最近的约会。我可以通过: hashes.sort{|i| i[:date]}.first[:da
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}
]
我想知道最近的约会。我可以通过:
hashes.sort{|i| i[:date]}.first[:date]
# => Sat, 27 Feb 2016
但我觉得有点多余。有没有更好的方法来实现此行为?您可以像这样做:
hashes.max_by{|h| h[:date]}[:date]
或
你可以这样做:
hashes.max_by{|h| h[:date]}[:date]
或
Ruby为您提供
.max
和.min
。因此,您总是希望创建新的日期数组并使用ruby的方法:
date_array.min # => Oldest date
date_array.max # => Most recent date
正如sawa的回答所暗示的:hashes.map{h | h[:date]}.max
很棒。您可以使用.map
创建新的日期数组,并使用ruby函数.max
确定最近的日期
我看到您正在尝试使用sort方法,但我建议您不要这样做,因为当您只需要元素来查看计算值是最大值还是最小值时,sort是一种浪费
仅供参考:Ruby为您提供
.max
和.min
。因此,您总是希望创建新的日期数组并使用ruby的方法:
date_array.min # => Oldest date
date_array.max # => Most recent date
正如sawa的回答所暗示的:hashes.map{h | h[:date]}.max
很棒。您可以使用.map
创建新的日期数组,并使用ruby函数.max
确定最近的日期
我看到您正在尝试使用sort方法,但我建议您不要这样做,因为当您只需要元素来查看计算值是最大值还是最小值时,sort是一种浪费
供参考: