Alternatives of each loop in ruby on rails

in #rubyonrails2 years ago (edited)

In Ruby, the each method is a common way to iterate over a collection, such as an array or hash. However, there are other methods available that can be used as an alternative to each. Here are a few examples:

map: The map method allows you to apply a transformation to each element in a collection and returns a new array containing the transformed elements. For example, to double each element in an array, you can use the following code:

arr = [1, 2, 3]
doubled_arr = arr.map { |n| n * 2 }
# doubled_arr is now [2, 4, 6]

select: The select method allows you to filter elements in a collection based on a condition and returns a new array containing the selected elements. For example, to select only even numbers from an array, you can use the following code:

arr = [1, 2, 3, 4, 5]
even_arr = arr.select { |n| n.even? }
# even_arr is now [2, 4]

reduce: The reduce method (also known as inject) allows you to accumulate a value by applying an operation to each element in a collection. For example, to sum all the elements in an array, you can use the following code:

arr = [1, 2, 3, 4, 5]
sum = arr.reduce(0) { |acc, n| acc + n }
# sum is now 15

These are just a few examples of alternative methods to each in Ruby. Depending on your use case, there may be other methods that are more appropriate for your situation.