@example.each do |e|
#do something here
end
Here I want to do something different with the first and last element in each, how should I achieve this?
A fairly common approach is the following (when there are certainly no duplicates in the array).
@example.each do |e|
if e == @example.first
# Things
elsif e == @example.last
# Stuff
end
end
If you suspect array may contain duplicates (or if you just prefer this method) then grab the first and last items out of the array, and handle them outside of the block. When using this method you should also extract the code that acts on each instance to a function so that you don't have to repeat it:
first = @example.shift
last = @example.pop
# @example no longer contains those two items
first.do_the_function
@example.each do |e|
e.do_the_function
end
last.do_the_function
def do_the_function(item)
act on item
end