在最多三个元素的三个不同阵列中拆分数组

时间:2015-06-11 12:11:57

标签: arrays ruby split

我有一个数组:

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

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

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

我该怎么做?

3 个答案:

答案 0 :(得分:1)

看一下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)

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

到这个时候,我希望你得到答案。如果您使用 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来维护数组大小。