我有一个哈希看起来像这样不能得到正确的格式
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]}"
OOPS,没关系。正确的代码是这个
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]}"
您如何预计它会发现这是您想要打印的内容?你告诉它打印一个数组,所以这就是它的作用。没有关于“Item#”的任何内容,等等。只需将你想要的值从你得到的数组中拉出来并单独打印出来。 – 2012-02-26 23:48:51
您可以通过点击答案投票计数下的复选框来接受堆栈溢出的答案。这可以让人们知道答案就是你正在寻找的东西,而且他们不会重复答案。 – Linuxios 2012-02-27 02:33:56