我有一个数组:
arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
我想将 arr1
分成 x 个切片,其中每个切片尽可能完整且相等。
arr2 = arr1.foo(3)
# => [1, 2, 3, 4][5, 6, 7][8, 9, 10]
each_slice
做的与我想要的相反,而是将数组分成 x 个元素组。
arr2 = arr1.each_slice(3)
# => [1, 2, 3][4, 5, 6][7, 8, 9][10]
如果可能,我想在不使用特定于 Rails 的方法(如 in_groups
)的情况下执行此操作。
最佳答案
class Array
def in_groups(n)
len, rem = count.divmod(n)
(0...n).map { | i | (i < rem) ? self[(len+1) * i, len + 1] : self[len * i + rem, len] }
end
end
关于arrays - 将数组拆分为 x 个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402582/