我正在寻找一种转换方法:
[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中有没有内置的方法可以做到这一点?
我用的是:
[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当你想要将数组分成块时,通过传入正则表达式搜索重复模式,或者你可以通过块计算的东西,它是非常强大的.这里总结得太强大,所以花点时间阅读文档并使用示例.