ใช่คุณสามารถ
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) }
some_array[offset..-1].each_with_index{|item, index| some_func(item, index+offset) }
some_array[offset..-1].each_with_index{|item, index| index+=offset; some_func(item, index) }
UPD
นอกจากนี้ฉันควรสังเกตด้วยว่าหากออฟเซ็ตมากกว่าขนาด Array ของคุณมันจะเกิดข้อผิดพลาด เพราะ:
some_array[1000,-1] => nil
nil.each_with_index => Error 'undefined method `each_with_index' for nil:NilClass'
เราทำอะไรได้ที่นี่:
(some_array[offset..-1]||[]).each_with_index{|item, index| some_func(item, index) }
หรือเพื่อตรวจสอบค่าชดเชยล่วงหน้า:
offset = 1000
some_array[offset..-1].each_with_index{|item, index| some_func(item, index) } if offset <= some_array.size
นี่คือความแฮ็คเล็กน้อย
UPD 2
เท่าที่คุณอัปเดตคำถามของคุณและตอนนี้คุณไม่จำเป็นต้องใช้ Array offset แต่ Index offset ดังนั้นโซลูชัน @sawa จะทำงานได้ดีสำหรับคุณ