如何从哈希中获取最大值

时间:2019-01-11 15:18:30

标签: arrays ruby hash

我想从哈希中获取最大值,但我一直在获取第一个

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

2 个答案:

答案 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}

我认为这适用于任何符号和任何顺序。