Wie zum Zusammenführen von zwei hashes, die gleichen Schlüssel, die in ruby
Habe ich zwei hashes, sollten die gleichen Tasten wie:
a = {a: 1, b: 2, c: 3}
b = {a: 2, b: 3, c: 4}
Und ich möchte zusammenfassend die einzelnen Werte wie diese:
if a.keys == b.keys
a.values.zip(b.values).map{|a, b| a+b}
end
Aber dieser code funktioniert nicht, wenn die Reihenfolge der keys unterschiedlich sind wie b = {a: 2, c: 4, b: 3}
.
Wie kann ich den code schreiben, der unter Berücksichtigung der über die Reihenfolge der keys?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
Hash#merge
oderHash#Zusammenführen!
:Wird der block aufgerufen, mit Schlüssel, Alter Wert, neuer Wert. Und der Rückgabewert des Blocks wird als ein neuer Wert.
Hash#merge!
akaHash#update
.Hash#merge
existiert nicht. Nicht sicher seit, welche version es verfügbar ist, aber laut Dokumentation, es sollte dort für 1.8.6+