Как получить максимальное значение из хэша - PullRequest
0 голосов
/ 11 января 2019

Я хочу получить максимальное значение из хэша, но я продолжаю получать первое

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 голосов
/ 11 января 2019

Возможно

$crypto.max_by{|a,b| b.tr('^0-9''.','').to_f}

Я думаю, что это работает с любыми символами и в любом порядке.

0 голосов
/ 11 января 2019

В соответствии с форматом каждой строки в crypto_price вам необходимо удалить любой нецифровый символ с этими 4 элементами, $ - это тот, который вам не нужен.

max может помочь вам:

$crypto.max { |value| value.last.delete('$').to_f }
# "$46000.09"

Удалив $, вы получаете «конвертируемое» число с плавающей точкой, которое затем можно сравнить.

Я слепо предполагаю, что "$" - единственный символ, который не нужен среди них. Но так будет не всегда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...