如何迭代最多四个数组对象而不是全部?在以下代码中,它迭代所有对象。我只需要前四个对象。
objects = Products.all();
arr=Array.new
objects.each do |obj|
arr << obj
end
p arr
它可以像objects=objects.slice(4)
一样完成,还是迭代唯一的方式?
编辑:
我还需要打印迭代发生的次数,但我的解决方案objects[0..3]
(感谢此处的答案)很长。
i=0;
arr=Array.new
objects[0..3].each do |obj|
arr << obj
p i;
i++;
end
答案 0 :(得分:83)
答案 1 :(得分:45)
我猜最红润的方式是
arr=Array.new
objects[0..3].each do |obj|
arr << obj
end
p arr;
这样,使用[0..3]
创建一个只包含对象中前4个元素的子数组。
答案 2 :(得分:18)
Enumerable#take
返回Enumerable中的第一个n
元素。
答案 3 :(得分:4)
arr = objects[0..3]
多数民众赞成。你不需要其余的
答案 4 :(得分:2)
您可以像这样objects[0,4]
objects[0,4]
说:从索引0开始,给我4个数组元素。
arr = objects[0,4].inject([]) do |array, obj|
array << obj
end
p arr