从哈希值我有散,看起来像这样:获取红宝石
{"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
我想从这个散列只有这个“10”和阵列“9”值来获得。我怎样才能做到这一点? 在此先感谢!
从哈希值我有散,看起来像这样:获取红宝石
{"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
我想从这个散列只有这个“10”和阵列“9”值来获得。我怎样才能做到这一点? 在此先感谢!
尝试了这一点:
h = {"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
h.map{|k,v| v.values}.flatten
=> ["9", "10"]
或按@gotva
h.flat_map{|k,v| v.values}
{"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
.values.flat_map(&:values)
# => ["9", "10"]
假设你想用钥匙"car_addition_id"
(而不是什么关键在这些位置出现在相关的值表达),最直接的方法是:
h.map { |_k,v| v["car_addition_id"] }
#=> ["9", "10"]
这当然适用于内部哈希包含多个键/值对的情况。
对于那些不熟悉符号的人,_k
和_
都是未使用块变量的占位符;前者可以用来指示块变量在被使用时如何被写入。
这是伟大的,非常快速的答案。谢谢! –
,你可以使用['flat_map'](http://apidock.com/ruby/Enumerable/flat_map)代替'map' +'flatten' – gotva
@gotva多数民众赞成好。 –