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

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

推荐答案

我想鲁比斯特之路会过go 的

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

p arr;

因此,使用[0..3]可以创建一个子数组,其中只包含来自对象的前4个元素.

Ruby相关问答推荐

ruby 3.1:使用方法(:名称)简化代码莫名其妙地失败

如何在 Ruby 中正确编写代码?以便它产生正确的输出?

.nil?、.blank? 之间的区别?和.empty?

如何判断 Ruby 文件是否为空?

如何使用 Ruby 删除字符串中某个字符后的子字符串?

如何拯救 Ruby 中的 eval?

Ruby访问嵌套函数中的外部变量

如何期望 RSpec should_receive 的一些(但不是全部)参数?

如何使用 RVM 重新编译 ruby​​?

什么时候在 Ruby 中使用 Struct 比使用 Hash 更好?

为什么在 ruby​​ / rails / activerecord 中并不总是需要 self ?

如何设置方法测试中使用的私有实例变量?

在 OSX 10.10 Yosemite 上安装 Nokogiri

Ruby全局匹配正则表达式?

如何在没有 RVM 的 Ubuntu 上安装 Ruby 2

如何从Ruby中的哈希表中获取第一个键值对

*nix 是什么意思?

未加载库:/opt/local/lib/libssl.1.0.0.dylib (LoadError)

在 Jekyll 中使用 Live Reload

检索/列出 Redis 数据库中的所有键/值对