2017-02-23 7 views
0

ユーザーが入力したアイテムとそれに関連するコストを格納する食料品リストを作成しました。hash.valuesの作成方法を参照する方法

このハッシュに格納されているすべての値を追加します。私の最初の計画は、それらをアレイに変換してからそこに行くことでした。

hash = {} 
entry = " " 

while entry != "q" 
    print "Enter your item: " 
    item = gets.chomp 

    print "Enter the associated cost: " 
    cost = gets.chomp.to_f 

    print "Press any key to continue or 'q' to quit: " 
    entry = gets.chomp 

    hash[item] = cost 
end 

puts "Receipt: " 
puts "----------" 

hash.each do |k,v| 
    puts "#{k} costs $#{v}" 
end 

puts "----------" 
puts "subtotal: " 
hash.values 

hash.valuesで作成された新しいアレイをどのように参照しますか?

私はarray.inject(0){|sum,x| sum + x }を試しましたが、新しく作成された配列が認識されないため動作しません。

答えて

1

あなたは、配列をexctractingされていますが、あなたがそれを使用していない、あなたのコードでは、この1

subtotal = hash.values.inject(0, :+) 
puts subtotal 

を試してみてください。

+0

うんを!ありがとう、私はできるだけ早く答えとしてそれを受け入れる – Vroryn

+0

私の喜びサー – Ursus

1

のRuby 2.4の時点で、あなただけのsum使用することができます働い

puts "subtotal: " 
puts hash.values.sum 
関連する問題