Schienen-mapping-array von hashes auf einzelne hash
Ich habe ein array von hashes wie so:
[{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}]
Und ich versuche, die Karte dies auf einzelne hash wie dieser:
{"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"}
Habe ich es erreicht mit
par={}
mitem["params"].each { |h| h.each {|k,v| par[k]=v} }
Aber ich Frage mich, ob es möglich, dies zu tun in einer mehr umgangssprachlichen Art und Weise (vorzugsweise ohne Verwendung einer lokalen variable).
Wie kann ich dies tun?
InformationsquelleAutor der Frage Bart Platak | 2012-08-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie Komponieren
Enumerable#reduce
undHash#merge
zu erreichen, was Sie wollen.Reduziert ein array in der Art, wie kleben ein Methodenaufruf zwischen den einzelnen Elementen.
Beispielsweise
[1, 2, 3].reduce(0, :+)
ist wie gesagt0 + 1 + 2 + 3
und gibt6
.In unserem Fall machen wir etwas ähnliches, aber mit der verschmelzen-Funktion verschmilzt zwei hashes.
InformationsquelleAutor der Antwort cjhveal
Wie etwa:
InformationsquelleAutor der Antwort shigeya
Verwenden #injizieren
InformationsquelleAutor der Antwort Joshua Cheek