有没有像这样拆分数组的
方法?
[1,2,3,4,5,6,7,8,9].split(3,2)
#=> [[1,3],[4,7],[8,9]]
不,没有,但你可以轻松自己写
一个.
class Array
def in_groups_of_n(*sizes)
sizes.map(&method(:shift))
end
end
例:
arr = [1,9]
arr.in_groups_of_n(3,2)
# => [[1,9]]
Demonstration
如果您需要非破坏性版本,可以使用dup方法:
class Array
def in_groups_of_n(*sizes)
duplicate = dup
sizes.map { |size| duplicate.shift(size) }
end
end
arr = [1,9]
arr
# => [1,9]
Demonstration