從哈希值我有散,看起來像這樣:獲取紅寶石
{"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多數民衆贊成好。 –