diff --git a/ruby/summing-collections.md b/ruby/summing-collections.md new file mode 100644 index 0000000..42d9c88 --- /dev/null +++ b/ruby/summing-collections.md @@ -0,0 +1,32 @@ +# Summing Collections + +Given a hash, `my_hash`, + +```ruby +my_hash = { + "one" => 1, + "two" => 2, + "three" => 5 +} +``` + +I want to determine the sum of the values in `my_hash`, which should be `8`. + +This is similar to asking for the sum of the values in an array. In fact, +using `#values` on `my_hash` will leave us with the task of summing the +values in an array. + +It turns out that to sum the values in an array, all you need is `#inject` + +```ruby +[1,2,5].inject(:+) +=> 8 +``` + +So, if I want the sum of the values in a hash, such as `my_hash`, then all +that is needed is + +```ruby +my_hash.values.inject(:+) +=> 8 +```