group
フラットな配列を指定の数ずつまとめる.
たまにあったら便利なのにと思いつつ,必要になるたびに手書きしてる.
すでに標準であったりして.
class Array def group(n=2) return [] if empty? if false and (size % n != 0) puts "error in group #{size}%#{n}=#{size%n}" return nil end ret = [] 0.upto(size/n-1) {|x| ret << self[x*n,n]} ret end end
p [1,2].group(2) # => [[1, 2]] p [1,2,3,4,5,6].group # => [[1, 2], [3, 4], [5, 6]] p (1..6).to_a.group(3) # => [[1, 2, 3], [4, 5, 6]] p (1..5).to_a.group(3) # => [[1, 2, 3]]