迭代数组的前n个元素

Yos*_*sef 49 ruby arrays

如何迭代最多四个数组对象而不是全部?在以下代码中,它迭代所有对象.我只需要前四个对象.

objects = Products.all();
arr=Array.new
objects.each do |obj|
    arr << obj
end
p arr
Run Code Online (Sandbox Code Playgroud)

可以这样做objects=objects.slice(4),还是迭代是唯一的方法?

编辑:

我还需要打印迭代发生的次数,但我的解决方案objects[0..3](感谢这里的答案)很长.

i=0;
arr=Array.new
objects[0..3].each do |obj|
    arr << obj
    p i;
    i++;
end
Run Code Online (Sandbox Code Playgroud)

小智 88

您可以使用前n个元素

arr = objects.first(n)
Run Code Online (Sandbox Code Playgroud)

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

  • "嘿Ruby,你很光滑AF." (3认同)

Jac*_*ack 49

我想最红润的方式会消失

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

p arr;
Run Code Online (Sandbox Code Playgroud)

这样[0..3]你就可以创建一个只包含对象中前4个元素的子数组.


Mla*_*vić 19

Enumerable#take返回nEnumerable中的第一个元素.


Aut*_*ico 5

arr = objects[0..3]
Run Code Online (Sandbox Code Playgroud)

就这样。你不需要剩下的