IT TIP

Ruby에서 배열을 청크하는 방법

itqueen 2020. 12. 10. 21:32
반응형

Ruby에서 배열을 청크하는 방법


Ruby 1.8.6에는 100,000 개의 사용자 ID 배열이 있으며, 각 ID는 정수입니다. 이 사용자 ID에 대해 코드 블록을 수행하고 싶지만 청크로 수행하고 싶습니다. 예를 들어 한 번에 100 개씩 처리하고 싶습니다. 가능한 한 간단하게 이것을 어떻게 쉽게 달성 할 수 있습니까?

다음과 같은 작업을 수행 할 수 있지만 더 쉬운 방법이있을 수 있습니다.

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

사용 each_slice:

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

Rails는 in_groups_of후드 아래에서 사용합니다 each_slice.

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

참고 URL : https://stackoverflow.com/questions/1230279/how-to-chunk-an-array-in-ruby

반응형