Ruby Min和max来自小时字符串数组

时间:2014-10-22 18:16:17

标签: ruby arrays

我试图从小时字符串数组中获取最小值和最大值。

所以,我的数组是:

["09:00", "11:10", "10:00", "20:00", "15:00"]

我尝试在所有元素上使用gsub删除:并转换为int,以便以后使用minmax函数,但不成功。我不想制作一些uggly代码来解决我的问题。

有没有美妙的方法呢?

3 个答案:

答案 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