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的数组大小...什么是实现这一目标的最佳方法?
items, @items = @items.dup, []
@items.push(items.shift(rand(1..3))) until items.empty?
Run Code Online (Sandbox Code Playgroud)