我有一个数组

foo = %w(1 2 3 4 5 6 7 8 9 10)

如何将其拆分或"分块"为更小的数组?

class Array
  def chunk(size)
    # return array of arrays
  end
end

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

推荐答案

看看Enumerable#each_slice:

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

Ruby相关问答推荐

如何将所有生成的元素消费到数组中?

在 Ruby 中,如何从派生类中重写同一方法的不同方法调用基类方法?

在 clojure 中,如何将已排序整数数组划分为连续的分区?

为什么我的二维 Ruby 数组的多个值会发生变化,尽管只更改了其中一个?

如何在 Ruby 中验证来自多项 Select 提示的命令行输入?

如何在 rspec 中使用 `eq` 匹配器和 `hash_include` 匹配器来获取哈希数组

将 pp 的结果(或输出到控制台的任何内容)放入字符串

Ruby: initialize() vs 类体(class body)?

Python 是否在 Ruby 中进行类似于字符串 #{var}的变量插值?

将元素添加到 ruby​​ 数组返回新数组

Ruby 中方法名称的限制是什么?

铲子 (<<) 运算符如何在 Ruby 哈希中工作?

使用 Ruby,我如何迭代一个 for 循环 n.times

如何在 Ruby 中遍历多行字符串?

你怎么说不等于在 Ruby 中?

如何在 Ruby 中重命名文件?

在 Ruby 中,获取数组中最大值的索引的最简洁方法是什么?

为什么在 ruby​​ 中动态创建大量符号不是一个好主意(对于 2.2 之前的版本)?

Array.empty 的相反方法是什么?或 [].empty?在Ruby中

遍历数组的前 n 个元素