我试图从小时字符串数组中获取最小值和最大值。
所以,我的数组是:
["09:00", "11:10", "10:00", "20:00", "15:00"]
我尝试在所有元素上使用gsub删除:
并转换为int
,以便以后使用minmax
函数,但不成功。我不想制作一些uggly代码来解决我的问题。
有没有美妙的方法呢?
答案 0 :(得分:3)
如果你有前导零:
["09:00", "11:10", "10:00", "20:00", "15:00"].minmax
#=> ["09:00", "20:00"]
答案 1 :(得分:2)
另一种方法是转换值并使用max_by,并将每个字符串转换为一对两个数字
["09:00", "11:10", "10:00", "20:00", "15:00"].max_by{|e| e.split(':').map(&:to_i) }
=> "20:00"
答案 2 :(得分:1)
> a = ["09:00", "11:10", "10:00", "20:00", "15:00"]
=> ["09:00", "11:10", "10:00", "20:00", "15:00"]
> a.map(&:to_i).max
=> 20
> a.map(&:to_i).min
=> 9