You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定项数迭代数组?含234元素数组每10项分页问题

问题1:如何每30项迭代一个数组?

用Ruby原生的each_slice方法就能实现,它会把数组按指定大小分割成子数组,然后逐个迭代这些子数组:

your_array.each_slice(30) do |chunk|
  # 在这里处理每一组30个元素的chunk
  # 比如打印当前组的元素数量:puts "当前组元素数:#{chunk.size}"
end

如果是在Rails项目中,也可以用in_groups_of,但each_slice不需要依赖Rails,适用性更广。

问题2:将234个元素的数组按每10项分页

你用in_groups_of没成功,应该是默认行为导致的——这个方法会自动用nil填充最后一组,让每组元素数都等于指定的10个,而你需要的是保留实际剩余元素的分组。

推荐用each_slice,它不会填充额外元素,完全符合分页需求:

# 模拟你的234个元素产品数组
products = Array.new(234) { |i| "产品#{i+1}" }
# 按每10项分组
paginated_products = products.each_slice(10).to_a

执行后paginated_products的结构和你给出的示例一致:前23组各包含10个元素,最后一组包含4个剩余元素。

如果一定要用Rails的in_groups_of,可以传入第二个参数false来禁用填充:

# 仅Rails环境可用
paginated_products = products.in_groups_of(10, false)

这样得到的结果和each_slice完全相同,不会出现多余的nil值。

内容的提问来源于stack exchange,提问作者jujajjjj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:35:22