添加到哈希表

时间:2015-11-01 18:45:27

标签: ruby hash

我试图将哈希值增加一。我的逻辑似乎是正确的,但由于某种原因,哈希值中的值不会增加1。

  puts item_sold
  temp = sales_hash.values[item_sold] + 1
  sales_hash.values[item_sold] = temp
  puts sales_hash.values[item_sold]

sales_hash是一个散列,其中键是1000-2000之间的数字,每个键的值从0开始。item_sold是1到15之间的随机数。有15个项目在哈希。当temp打印出来时,它的值为1。但是,当我打印出sales_hash.values[item_sold]的值时,它会打印0.什么是sales_hash.values[item_sold]没有递增?

1 个答案:

答案 0 :(得分:2)

Hash#values返回所有哈希值的数组。您想要添加一个值,您可以这样做:

item_sold
=> {0=>0, 1=>0, 2=>0}
item_sold[0] += 1
=> 1
item_sold
=> {0=>1, 1=>0, 2=>0}

您可以使用hash[key]语法访问哈希值。