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