索引搜索或获取每个循环

时间:2018-01-10 20:58:40

标签: ruby-on-rails

我循环遍历一个数组。数组中的某些元素为空,表示此后的新组或行集。我希望有关迭代控制的帮助,所以我的代码更清晰一点。这就是我所拥有的。

xls = SimpleXlsxReader.open(xls_file.path)
rows = xls.sheets.first.rows
g = false
holdThis = Array.new

# Iterate XLSX content
rows.each do |row|

    # An empty row mean new set
    if row[0].present?
        g = true
        next
    end

    # Capture the set information
    if g
        holdThis = row
        g = false
        next
    end

    # Do stuff with row and holdThis
end

这很有效,但并不是很干净。 Ruby是否有一些等同于我可以从每个循环(或另一种循环)内部调用的搜索或获取方法?

这是我正在寻找的伪代码版本:一种方法,可以寻找每个循环到下一次迭代并覆盖行变量。有没有办法在Ruby中做到这一点?

xls = SimpleXlsxReader.open(xls_file.path)
rows = xls.sheets.first.rows
holdThis = Array.new

# Iterate XLSX content
rows.each do |row|

    # An empty row mean new group
    if row[0].present?
        row = each.nextRow #Pseudocode
        holdThis = row
        row = each.nextRow #Pseudocode
    end

    # Do stuff with row and holdThis
end

1 个答案:

答案 0 :(得分:0)

Ruby确实有一个fetch方法,您可以通过执行当前索引+1来获取元素。