2017-09-23 60 views
1

我在学习Ruby,我想知道如何挑选每个:values我一次存储在数组中的所有散列中。数据结构看起来像这样(有更多的哈希值):访问数组中每个散列的每个值

[ { :label => "Grid Singularity ", :values => [44, 1] }, 
    { :label => "iamsmart ", :values => [44, 1] } ] 

如果我做的:

data_hash[0][:values] #=> [44, 1] 

我能得到第一哈希值,但是,我怎么能选择每个:值数组立刻?我的目标是能够对每个值执行相同的操作:不必逐一选择它们(这是一个很长的列表!)

非常感谢您的帮助!

+1

你'data_hash'实际上是一个数组。 –

回答

2

您可以使用map得到一个新的阵列只是把每个values键的值从主散列,如:

hash = [ 
    {:label=>"Grid Singularity ", :values=>[44, 1]}, 
    {:label=>"iamsmart ",   :values=>[44, 1]} 
] 

p hash.map { |el| el[:values] } 
# => [[44, 1], [44, 1]]