我的哈希看起来像这样:
{"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
我想从这个散列中得到数组中的这个“10”和“9”值。我怎样才能做到这一点? 提前谢谢!
答案 0 :(得分:4)
试试这个:
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}
答案 1 :(得分:3)
{"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}}
.values.flat_map(&:values)
# => ["9", "10"]
答案 2 :(得分:1)
假设您想要与键"car_addition_id"
关联的值(而不是表达式中那些位置出现的任何键),最简单的方法是:
h.map { |_k,v| v["car_addition_id"] }
#=> ["9", "10"]
当内部哈希包含多个键/值对时,这当然有效。
对于那些不熟悉符号的人,_k
和_
都是未使用的块变量的占位符;前者可用于指示块变量在使用后如何写入。