Ruby – Iterate over the first n elements of an array

arraysruby

How can I iterate up to four objects of an array and not all? In the following code, it iterates over all objects. I need only the first four objects.

objects = Products.all();
arr=Array.new
objects.each do |obj|
    arr << obj
end
p arr

Can it be done like objects=objects.slice(4), or is iteration the only way?

Edit:

I also need to print how many times the iteration happens, but my solution objects[0..3] (thanks to answers here) long.

i=0;
arr=Array.new
objects[0..3].each do |obj|
    arr << obj
    p i;
    i++;
end

Best Answer

You can get first n elements by using

arr = objects.first(n)

http://ruby-doc.org/core-2.0.0/Array.html#method-i-first