我有兩個哈希數組 - car_model
& car_cc
如下。對於car_model
中的每個散列,我需要查找cc
密鑰並將其添加到car_model
。帶多個鍵的Ruby哈希查找
car_model = [
{state: "MH", regno: 5555, model: "alto"},
{state: "MH", regno: 5566, model: "alto"},
{state: "DL", regno: 5555, model: "prius"},
{state: "DL", regno: 5567, model: "nano"}
]
car_cc = [
{state: "MH", regno: 5555, cc: 999},
{state: "MH", regno: 5588, cc: 1800},
{state: "DL", regno: 5555, cc: 1119},
{state: "DL", regno: 5567, cc: nil}
]
現在我使用的是普通.each
迴路car_cc
查找爲cc
鍵,並添加到每個項目中car_model
。
car_model.each do |cm|
car_cc.each do |cc|
if(cm["state"]==cc["state"] && cm["regno"]==cc["regno"])
cm["cc"] = cc["cc"]
break
end
end
end
預期輸出
puts car_model
{:state=>"MH", :regno=>5555, :model=>"alto", :cc=>999}
{:state=>"MH", :regno=>5566, :model=>"alto", :cc=>nil}
{:state=>"DL", :regno=>5555, :model=>"prius", :cc=>1119}
{:state=>"DL", :regno=>5567, :model=>"nano", :cc=>nil}
=> nil
irb(main):008:0>
是否有這樣做的更有效的方式 - 更快,更rubyistic方式?
好主意使用'detect'。 –