我想从哈希中获取最大值,但我一直在获取第一个
Crypto_name = ["Bitcoin", "Ethereum", "Project-x", "Fake"]
Crypto_price = ["$5500.6", "$538.9", "$0.25", "$46000.09"]
$crypto = Crypto_name.zip(Crypto_price).to_h
def largest_hash_key
puts $crypto.max_by{|a,b| b.to_i}
end
largest_hash_key
答案 0 :(得分:2)
根据crypto_price中每个字符串的格式,您需要删除任何非数字字符,并使用这4个元素,$
是不需要的字符。
max
可为您提供帮助:
$crypto.max { |value| value.last.delete('$').to_f }
# "$46000.09"
通过删除$
,您将获得一个“可转换”的浮点数,您可以将其进行比较。
我盲目地认为“ $”是其中唯一不需要的一个字符。但这并不总是这种方式。
答案 1 :(得分:0)
也许
$crypto.max_by{|a,b| b.tr('^0-9''.','').to_f}
我认为这适用于任何符号和任何顺序。