我有一个看起来像这样的哈希
@hash = {
0=>[{"name"=>"guest", "value"=>7.9}],
1=>[nil], 2=>[nil], 3=>[nil], 4=>[nil], 5=>[nil], 6=>[nil], 7=>[nil], 8=>[nil],
9=>[nil], 10=>[nil], 11=>[nil], 12=>[nil], 13=>[nil], 14=>[nil], 15=>[nil],
16=>[nil], 17=>[nil], 18=>[nil],
19=>[{"name"=>"test", "value"=>2.5}],
20=>[{"name"=>"roam", "value"=>2.5}],
21=>[{"name"=>"test2", "value"=>1.58}],
22=>[{"name"=>"dff", "value"=>1.9}],
23=>[{"name"=>"dddd", "value"=>3.16}]
}
Run Code Online (Sandbox Code Playgroud)
我想在变量中使用此哈希中的最高值.输出应该是
@h = 7.9 \\only float value which should be highest among all
Run Code Online (Sandbox Code Playgroud)
所以我这样做
@hash.each do |k, v|
if !v.nil?
@h= [v.flatten.sort{ |v1, v2| v2['value'] <=> v1['value'] }.first['value']]
end
end
Run Code Online (Sandbox Code Playgroud)
但有时候它会起作用,而且大部分时间都没有.
@hash.values.flatten.compact.map { |h| h["value"] }.max
=> 7.9
Run Code Online (Sandbox Code Playgroud)
这相当于:
nil条目["value"]散列中的元素它对你的格式做了很多假设@hash.
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |