我有以下数组:

arr = [0, 1, 1, 2, 3, 1, 0, 0, 1]

在不改变值的顺序的情况下,我需要在每次出现arr时将0细分为更小的数组,这样的结果将是:
arr = [ [0, 1, 1, 2, 3, 1], [0], [0, 1] ]

如果arr是一个字符串,我可以使用.split("0"),然后将分隔符前置到每个子数组。在普通ruby for arrays中,.split()最有效的等价物是什么?

最佳答案

Enumerable#slice_before准确地说:

arr = [0, 1, 1, 2, 3, 1, 0, 0, 1]
p arr.slice_before(0).to_a
# => [[0, 1, 1, 2, 3, 1], [0], [0, 1]]

在REPL.IT上查看:https://repl.it/FBhg

09-25 18:47
查看更多