У меня есть хеш, похожий на этот
products = {199 =>['Shoes', 59.99], 211 =>['Shirts', 19.99], 245 =>['Hats', 25.99], 689 => ['Coats', 99.99], 712 => ['Beanies', 6.99]}
продукты = номер товара => [продукт, цена]
Моя цель - распечатать самую высокую и самую низкую цену в хэше. Пока все, что я получил, это:
products = {199 =>['Shoes', 59.99], 211 =>['Shirts', 19.99], 245 =>['Hats', 25.99], 689 =>['Coats', 99.99], 712 => ['Beanies', 6.99]}
max_value = products.max_by { |key, value| value[1] }.to_s
print max_value
min_value = products.min_by { |key, value| value[1] }.to_s
print min_value
Когда я его распечатываю, это выглядит так.
["689", ["Coats", 99.99]]
["712", ["Beanies", 6.99]]
Я бы хотел, чтобы это выглядело так
Item# 689: Coats, 99.99
Item# 712: Beanies, 6.99
У кого-нибудь есть советы для меня?
Я понял это благодаря вашей помощи. Большое спасибо. Это дает мне именно то, что я искал.
min_value = products.min_by { |value| value[1] }
puts "Item# #{min_value[0]}: #{min_value[1][0]}, #{min_value[1][1]}"
max_value = products.max_by { |value| value[1] }
puts "Item# #{max_value[0]}: #{max_value[1][0]}, #{max_value[1][1]}"
Упс, неважно. Правильный код это
min_value = products.min_by { |key, value| value[1] }
puts "Item# #{min_value[0]}: #{min_value[1][0]}, $#{min_value[1][1]}"
max_value = products.max_by { |key, value| value[1] }
puts "Item# #{max_value[0]}: #{max_value[1][0]}, $#{max_value[1][1]}"