【发布时间】:2014-09-15 23:55:51
【问题描述】:
我们想一次处理一个数组的 1000 个元素。在 Ruby 中执行此操作的选项有哪些?
显然,一种方法是执行一个简单的循环并从数组中切出 1000 个元素,直到没有更多元素存在,但很好奇是否还有其他更优雅的选择。
这是针对 Rails 应用程序 (RoR 3.2.12)。
【问题讨论】:
标签: ruby-on-rails ruby arrays
我们想一次处理一个数组的 1000 个元素。在 Ruby 中执行此操作的选项有哪些?
显然,一种方法是执行一个简单的循环并从数组中切出 1000 个元素,直到没有更多元素存在,但很好奇是否还有其他更优雅的选择。
这是针对 Rails 应用程序 (RoR 3.2.12)。
【问题讨论】:
标签: ruby-on-rails ruby arrays
在 Rails 中你可以使用in_groups_of:
array = [1,2,3,4,5,6,7,8,9,10]
array.in_groups_of(3, false).each do |group|
puts group
end
# => [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
【讨论】:
我们最终使用each_slice:
array = [1,2,3,4,5,6,7,8,9,10]
array.each_slice(3) do |group|
puts group
end
【讨论】: