Itérer sur les n premiers éléments d’un tableau

Comment puis-je parcourir jusqu’à quatre objects d’un tableau et pas tous? Dans le code suivant, il itère sur tous les objects. Je n’ai besoin que des quatre premiers objects.

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

Peut-on faire comme objects=objects.slice(4) , ou est-ce que l’itération est la seule façon?

Modifier:

J’ai aussi besoin d’imprimer combien de fois l’itération se produit, mais ma solution objects[0..3] (grâce aux réponses ici) longtemps.

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

Je suppose que le chemin des rubystes passerait

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

de sorte qu'avec [0..3] vous créez un sous-tableau contenant uniquement les 4 premiers éléments des objects.

Vous pouvez obtenir les n premiers éléments en utilisant

 arr = objects.first(n) 

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

Enumerable#take renvoie d’abord les n éléments d’un Enumerable.

 arr = objects[0..3] 

C’est tout. Tu n’as pas besoin du rest

Vous pouvez épisser le tableau comme ceci objects[0,4]

objects[0,4] disent: commencez à l’index 0 et donnez-moi 4 éléments du tableau.

 arr = objects[0,4].inject([]) do |array, obj| array << obj end p arr