Wie zu finden und zurück einen hash-Wert in einem array von hashes, da mehrere andere Werte in dem hash
Habe ich dieses array von hashes:
results = [
{"day"=>"2012-08-15", "name"=>"John", "calls"=>"5"},
{"day"=>"2012-08-15", "name"=>"Bill", "calls"=>"8"},
{"day"=>"2012-08-16", "name"=>"Bill", "calls"=>"11"},
]
Wie kann ich die Suche die Ergebnisse, um herauszufinden, wie viele Anrufe, die Bill am 15ten?
Nach dem Lesen der Antworten zu "Ruby-einfache Suche für Schlüssel-Wert-paar eines Arrays von hashes", ich denke, es könnte beinhalten, den ausbau nach der folgenden find-Anweisung:
results.find { |h| h['day'] == '2012-08-15' }['calls']
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist auf dem richtigen Weg!
&&
instad wennand
Einen Wirklich plumpen Umsetzung 😉
Oder ein anderer möglicher Weg, aber ein wenig schlechter, mit Spritzen:
Beachten Sie, dass der Satz number_of_calls in jeder iteration, ansonsten wird es nicht funktionieren, zum Beispiel das NICHT funktioniert:
Eigentlich, "reduzieren" oder "inject" ist speziell für diese genaue operation (Zur Verringerung der Inhalt einer aufzählbaren nach unten in einen einzigen Wert:
Interessanten Kommentar hier:
"Verständnis Karte und reduzieren"