ruby - Ruby 爱好者的 Groovy - #each_slice
问题描述
在红宝石中,我有#each_slice ...
(1..10).each_slice(3).to_a
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
我正在寻找一种优雅的方式在 Groovy 中做同样的事情,这就是我作为初学者所得到的全部:
arr = []
list = (1..10) as Queue
while(!list.isEmpty()) {
sub_arr = []
3.times { sub_arr << list.poll() }
sub_arr.removeAll([null])
arr << sub_arr
}
arr
Result: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
解决方案
你需要collate
groovy
(1..10).collate(3)
推荐阅读
- python - 由于 IOpub 数据速率超出,无法读取 txt 文件
- c# - 我的 UI 在尝试连接到套接字时滞后?
- android - 列表视图中的搜索过滤器在项目单击时返回错误值
- reactjs - 将文本添加到 Switch formcontrol 并使用材质 ui 在切换中更改它
- git - 如何在脚本化管道中使用 SkipDefaultCheckout
- javascript - 原子中的代码在html中显示不同的颜色
- python - 如何使装饰器功能成为类的一部分
- javascript - 如何将查询字符串参数从数据传递给ajax调用
- node.js - Sequelize 有条件的订单
- javascript - html5的使用针对不同的浏览器