什么是将ruby中的数组拆分为多个随机大小的较小数组的最佳方法

Rya*_*era 4 ruby arrays random slice

我有多个可变长度从1到40的ruby数组:

@items是一个典型的数组,长度可以是1到40.例如

@items = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

我想随机将数组拆分成较小的长度为1,2或3的数组,以得到(例如)的结果

@items = [[1, 2],[3],[4,5,6]]
Run Code Online (Sandbox Code Playgroud)

要么

@items = [[1],[2, 3],[4],[5,6]]
Run Code Online (Sandbox Code Playgroud)

等等

我知道你可以使用@ items.each_slice(3)分割数组......其中3是固定长度.但我想随机将大小可变长度的数组随机分成1,2或3的数组大小...什么是实现这一目标的最佳方法?

saw*_*awa 7

items, @items = @items.dup, []
@items.push(items.shift(rand(1..3))) until items.empty?
Run Code Online (Sandbox Code Playgroud)