Skip to content

Instantly share code, notes, and snippets.

View robjlucas's full-sized avatar

Rob Lucas robjlucas

  • New Left Review
View GitHub Profile
@robjlucas
robjlucas / transforming_array_of_hashes.rb
Last active June 4, 2019 12:09
How to transform this array of hashes more elegantly?
array = [{"no_in_series"=>116, "recipient_type"=>"individual", "subscriptions"=>3971},
{"no_in_series"=>116, "recipient_type"=>"institution", "subscriptions"=>838},
{"no_in_series"=>116, "recipient_type"=>"student", "subscriptions"=>509},
{"no_in_series"=>115, "recipient_type"=>"individual", "subscriptions"=>3859},
{"no_in_series"=>115, "recipient_type"=>"institution", "subscriptions"=>805},
{"no_in_series"=>115, "recipient_type"=>"student", "subscriptions"=>441}]
array.group_by {|r| r["no_in_series"]}
.map {|k,v| {k => v.map {|r| {r["recipient_type"] => r["subscriptions"]}}}}
.map {|h| {h.keys.first => h.values.first.inject(&:merge)}}