我有一个像这样的哈希数组,我想取其中的最大值
data = [{name: "abc", value: "10.0"}, {name: "def", value: "15.0"}, {name: "ghi", value: "20.0"}, {name: "jkl", value: "50.0"}, {name: "mno", value: "30.0"}]
我想选择哈希数组的最大值,我想要的输出就像数据:“50.0”
我怎么可能这样做,我已经尝试过,但它似乎不起作用,只是给我一个错误
data.select {|x| x.max['value'] }
任何帮助将不胜感激
在 Ruby 中,有很多方法可以做到这一点。这里有两个。你可以将一个块传递给Array#max
如下:
> data.max { |a, b| a[:value] <=> b[:value] }[:value]
=> "50.0"
或者你可以使用Array#map
撕开:value
条目出Hash
:
> data.map { |d| d[:value] }.max
=> "50.0"
请注意,您可能想要使用#to_f
or Float(...)
以避免进行字符串-字符串比较,具体取决于您的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)