将数组拆分为最多三个元素的三个不同数组

Splitting array in three different arrays of maximum three elements

我有一个数组:

array = [12, 13, 14, 18, 17, 19, 30, 23]

我需要将这个数组分成最多三个元素的数组:

[12, 13, 14] [18, 17, 19] [30, 23]

我该怎么做?

看看Enumerable#each_slice:

foo.each_slice(3).to_a
#=> [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["10"]]

如果您使用 rails,您还可以使用 in_groups_of:

foo.in_groups_of(3)

试试这个... 使用 Enumerable#each_slice 切片数组 x 值

array  = [12, 13, 14, 18, 17, 19, 30, 23]
array.each_slice(3)
array.each_slice(3).to_a 

到这个时候,我希望你得到你的答案。如果你正在使用 Rails,你可以使用 in_groups,你不必显式地调用 to_a :

array.in_groups(3)
# => [[12, 13, 14], [18, 17, 19], [30, 23, nil]]

array.in_groups(3, false)
# => [[12, 13, 14], [18, 17, 19], [30, 23]]

使用 in_groups 的另一个 优点 是,您可以(严格)保留数组大小。它将 fill_with = nil 保持数组大小。