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

Ruby实现数组按指定步长循环遍历输出所有元素的方法求解

Ruby数组stride方法实现

我们需要给Ruby的Array类添加一个stride方法,实现按指定步长循环遍历数组元素的功能——当遍历到数组末尾时自动回到开头,直到所有元素都被访问一次。

效果示例

x = [0,1,2,3,4]
x.stride(1) do |elem|; puts elem; end # 依次输出 0、1、2、3、4
x.stride(2) do |elem|; puts elem; end # 依次输出 0、2、4、1、3
x.stride(8) do |elem|; puts elem; end # 依次输出 0、3、1、4、2
[].stride(2) do |elem|; puts elem; end # 无输出,代码合法

约束条件

  • 步长取值≥1
  • 步长与数组长度不为整数倍关系(保证能遍历完所有元素)

待补全的代码结构

class Array
    def stride(step)
        numelems = self.length # 数组长度
        ...
    end
end

实现方案

class Array
  def stride(step)
      yield self[0] unless empty?
      (self * step).map.with_index do |element, index|
          next if index == 0
          yield element if index % step == 0
      end
  end
end

说明:补充了空数组判断,避免空数组调用时出现索引越界问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:36:11