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

Ruby实现将数组按指定长度分组为嵌套数组的方法

Ruby方法实现:按指定长度拆分数组为嵌套数组

需求说明

编写一个名为organize_depths的Ruby方法,接收两个参数:

  • 第一个参数:任意长度的数组
  • 第二个参数N:每个嵌套数组的目标长度(最后一组长度可小于N,但不能超过N)

示例代码

# 输入数组
water_depths = [32, 45, 12, 59, 14, 30, 11, 1, 20, 17, 18, 18, 40, 100, 399, 987, 210]
# 目标每组长度
n = 3

def organize_depths(arr, n)
  arr.each_slice(n).to_a
end

# 调用方法后的结果
# => [[32, 45, 12], [59, 14, 30], [11, 1, 20], [17, 18, 18], [40, 100, 399], [987, 210]]

代码解释

Ruby内置的Array#each_slice方法完美适配这个需求:

  • each_slice(n)会将原数组按每n个元素为一组分割,返回一个枚举器对象
  • 调用to_a将枚举器转换为嵌套数组,最后一组如果剩余元素不足n个,会直接保留剩余的所有元素,完全符合题目对最后一组的要求

可选边界处理

如果需要兼容n为非正整数的异常场景,可以添加参数校验:

def organize_depths(arr, n)
  return [] if n < 1
  arr.each_slice(n).to_a
end

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:31:07