从散列中获取最大值是另一个散列的值?

时间:2016-10-07 21:40:59

标签: ruby hashtable

我有一个哈希,其键是日期时间,其值是哈希值,如下所示:

{datetime =>{"string0"=>int0, "string1"=>int1}}

父哈希中的每个值都具有相同的格式 - 与键相同的2个字符串,以int作为值。如何在整个哈希中找到最大的int0

2 个答案:

答案 0 :(得分:2)

hash.map { |_k, v| v['string0'] }.max
#=> 3

获取实际值:

{{1}}

答案 1 :(得分:1)

h = {:foo =>{"string0"=>1, "string1"=>2},
     :bar => {"string0"=>3, "string1"=>4, "string5"=>1} }

h.values.flat_map { |g| g.values_at("string0") }.max
  #=> 3

步骤如下。

a = h.values
  #=> [{"string0"=>1, "string1"=>2}, {"string0"=>3, "string1"=>4, "string5"=>1}]
b = a.flat_map { |g| g.values_at("string0") }
  #=> [1, 3] 
b.max
  #=> 3