打印出来自数组的哈希值

时间:2015-11-01 22:45:47

标签: arrays ruby hash

我有一个名为sales_hash的哈希,我正在打印出来。每个哈希都有一个名为sku的密钥,它匹配array_items数组中的哈希。我从数组中得到哈希值,并尝试根据:item键来打印哈希值,但我一直收到错误。我做错了什么?

sales_hash.take(10).each do |a, b|
  temp_hash = array_items.select{|array_items| array_items[:sku] == a}
  puts temp_hash
  puts "Sku is #{a} the amount sold is #{b} the name of the book is #{temp_hash[:price]}"
end

#{temp_hash[:item]}"行不断给我一个错误

3 个答案:

答案 0 :(得分:1)

您的temp_hash实际上是一个数组。

来自Docs

选择 - >返回一个新数组,其中包含给定块返回true值的所有ary元素。

你不能像这样访问和数组:array [:key]。

答案 1 :(得分:1)

由于您的temp_hash是一个数组,因此您可以像这样访问预期的哈希:

temp_hash[0] # this will give you the expected hash data

然后,您可以访问哈希中的所需密钥(例如price):

temp_hash[0][:price]

答案 2 :(得分:1)

由于temp_hash是一个数组,并且您确定该数组中只有一个项目,因此获取temp_hash内容的正确方法是使用"首先&# 34;像这样:

#{temp_hash.first[:price]}