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)
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