我有一个数组:
array = [12, 13, 14, 18, 17, 19, 30, 23]
我需要将这个数组分成最多三个元素的数组:
[12, 13, 14] [18, 17, 19] [30, 23]
我该怎么做?
答案 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
来维护数组大小。