从作为另一个哈希值的哈希值中获取最大值?

getting the largest value from a hash that is the value of another hash?

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

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

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

hash = {:foo =>{"string0"=>1, "string1"=>2}, :bar => {"string0"=>3, "string1"=>4}}
Hash[*hash.max_by { |_k, v| v['string0'] }]
#=> {:bar=>{"string0"=>3, "string1"=>4}}

获取实际值:

hash.map { |_k, v| v['string0'] }.max
#=> 3
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