Iterate over the first n elements of an array

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

Solution 1:

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

Solution 2:

I guess the rubyst way would go by

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

p arr;

so that with the [0..3] you create a subarray containing just first 4 elements from objects.

Solution 3:

Enumerable#take returns first n elements from an Enumerable.

Solution 4:

arr = objects[0..3]

Thats all. You dont need the rest