Ich habe eine Reihe von Hashes wie folgt:
[{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}]
Und ich versuche dies auf einen einzelnen Hash wie folgt abzubilden:
{"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"}
Ich habe es mit erreicht
par={}
mitem["params"].each { |h| h.each {|k,v| par[k]=v} }
Aber ich habe mich gefragt, ob es möglich ist, dies auf eine idiomatischere Weise zu tun (vorzugsweise ohne Verwendung einer lokalen Variablen).
Wie kann ich das machen?
ruby-on-rails
ruby
arrays
hash
Bart Platak
quelle
quelle
input.reduce(:merge)
?merge!
stattdessenmerge
der erste Hash geändert wird (den Sie möglicherweise nicht möchten), jedoch nicht für jede neue Zusammenführung ein Zwischen-Hash erstellt wird.Wie wäre es mit:
quelle
Verwenden Sie #inject
quelle
Hier können Sie entweder injizieren oder aus der Enumerable- Klasse reduzieren, da beide Aliase voneinander sind, sodass auch keine Leistungsvorteile bestehen.
quelle