tamaño objects len item for array ruby arrays

objects - Cómo dividir una matriz en Ruby



ruby select (2)

Rails tiene in_groups_of , que bajo el capó usa each_slice .

userids.in_groups_of(100){|group| //process group }

En Ruby 1.8.6, tengo un conjunto de, por ejemplo, 100,000 ID de usuario, cada uno de los cuales es un int. Quiero realizar un bloque de código en estas identificaciones de usuario pero quiero hacerlo en partes. Por ejemplo, quiero procesarlas 100 a la vez. ¿Cómo puedo lograr esto tan fácilmente como sea posible?

Podría hacer algo como lo siguiente, pero probablemente hay una manera más fácil:

a = Array.new userids.each { |userid| a << userid if a.length == 100 # Process chunk a = Array.new end } unless a.empty? # Process chunk end


Utilice each_slice :

require ''enumerator'' userids.each_slice(100) do |a| # do something with a end