【问题标题】:Split array up into n-groups of m size? [duplicate]将数组分成 n 组 m 大小? [复制]
【发布时间】:2011-10-26 18:44:25
【问题描述】:

可能重复:
Need to split arrays to sub arrays of specified size in Ruby

我正在寻找一个数组——比如 [0,5,3,8,21,7,2] ——并生成一个数组数组,每隔这么多地方拆分。如果上面的数组被设置为a,那么

a.split_every(3)

将返回 [[0,5,3],[8,21,7][2]]

这是否存在,还是我必须自己实现?

【问题讨论】:

    标签: ruby arrays


    【解决方案1】:

    使用Enumerable#each_slice

    a.each_slice(3).to_a
    

    或者,进行迭代(而不是保留数组):

    a.each_slice(3) do |x,y,z|
      p [x,y,z]
    end
    

    【讨论】:

    【解决方案2】:
    a = (1..6).to_a
    a.each_slice(2).to_a # => [[1, 2], [3, 4], [5, 6]]
    a.each_slice(3).to_a # => [[1, 2, 3], [4, 5, 6]]
    a.each_slice(4).to_a # => [[1, 2, 3, 4], [5, 6]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2018-12-15
      相关资源
      最近更新 更多