For each, Map, Collect, Select,Find_all, Find, Reduce in Ruby


The each iterator returns all the elements of an array or a hash.Executes code for each element in collection. Here, collection could be an array or a ruby hash.

It’s does not alter the original argument



Map is a Ruby method that you can use with Arrays, Hashes & Ranges.The main use for map is to TRANSFORM data.

Ruby Map vs Each

What is the difference between map & each?

Each is like a more primitive version of map…

It gives you every element so you can work with it, but it doesn’t collect the results. Each always returns the original, unchanged object.

While map does the same thing, but… It returns a new array with the transformed elements.

Ruby Map vs Collect

Map and Collect are exactly the same method.

They are different names for the same thing!


Array#collect() : collect() is an Array class method which invokes the argument block once for each element of the array. A new array is returned which has the value returned by the block.



Parameter: Arrays in which we want elements to be invoked

Return: array with all the invoked elements

Select / FIND_ALL

SELECT or FIND_ALL is best used when you need to iterate over an array or hash but only need the elements that return true when tested.

SELECT and FIND_ALL are basically identical when it comes to working with arrays.


When it comes to iterating over hashes, this is when we see the difference between .select and .find_all.

Notice how in the above example how both the .

select and .find_all return the same key:value pairings but

.select returns the value in the form of the original input which in this case is a hash. But we can see that .

.find_all return the key:value pairing in an array.


find(p1 = v1) public

Passes each entry in enum to block.


If no object matches, calls ifnone and returns its result when it is specified, or returns nil otherwise.

If no block is given, an enumerator is returned instead.


The .find method

This Ruby method iterates through an array and gives you the first match for which the expression within a block returns true.

The .select method

The .select method iterates on an array or hash and returns an array or hash (depending on the datatype) of all values that evaluate as true given a block of code.

This method is great when you want to filter a list and only return values that match certain conditions.

array containing all elements of array for which the given block returns a true value.


The ‘reduce’ method can be used to take an array and reduce it to a single value.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store