【问题标题】:Splitting array in three different arrays of maximum three elements [duplicate]在最多三个元素的三个不同数组中拆分数组[重复]
【发布时间】:2015-06-11 12:11:57
【问题描述】:

我有一个数组:

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

我需要将此数组拆分为每个最多三个元素的数组:

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

我该怎么做?

【问题讨论】:

标签: arrays ruby split


【解决方案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】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-30
        • 1970-01-01
        相关资源
        最近更新 更多