如何使用nil作为分隔符拆分数组?

szy*_*ski 0 ruby

我正在寻找一种转换方法:

[1,2,3,nil,4,5,nil,6,7,8,9] 
Run Code Online (Sandbox Code Playgroud)

成:

[[1,2,3],[4,5],[6,7,8,9]]
Run Code Online (Sandbox Code Playgroud)

在Ruby中有没有内置的方法可以做到这一点?

the*_*Man 6

我用的是:

[1,2,3,nil,4,5,nil,6,7,8,9].slice_before{ |e| e.nil? }.map(&:compact)
=> [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

slice_before当你想要将数组分成块时,通过传入正则表达式搜索重复模式,或者你可以通过块计算的东西,它是非常强大的.这里总结得太强大,所以花点时间阅读文档并使用示例.