2013-10-09 23 views
-2

我想只移動一個數組的兩個索引。東西沿着這些路線將指針沿着一個數組移動n次

iterate_amount = 2 
array = [2,4,6,7] 

iterate_amount.times do |x| 
    puts x 
end #=> 2,4 

我只是不知道我怎麼可以把「陣」的循環來告訴解釋,這是我想通過兩個指標來移動陣列。

+0

吉茲是什麼人的問題? – Starkers

+0

這可能是一個完整的其他問題,可能是Stack Exchange _Philosophy中可以回答的一些問題,雖然它是'對那些對邏輯推理感興趣的人',這意味着這個問題可能不適合。 – vgoff

回答

1

使用Array#takehttp://ruby-doc.org/core-2.0.0/Array.html#method-i-take

>> a = [2,4,6,7] 
=> [2, 4, 6, 7] 
>> a.take 2 
=> [2, 4] 
+0

或:array.first(2)。每個做.. – hirolau

+0

任何一種方式會給你一個數組,你可以迭代。我有這個問題,從措辭上不是100%清楚的是,OP是否在意迭代器在末尾的位置 – Doon

+0

不,這很好:) – Starkers

4

您可以使用Enumerable#cycle

array = [2,4,6,7] 
array.cycle(2) do |x| 
    puts x 
end 

打印

2 
4 
6 
7 
2 
4 
6 
7 

UPDATE

使用Array#[]與指定的開始,長度或與指定範圍。

>> array[0, 2] 
=> [2, 4] 
>> array[0..1] 
=> [2, 4] 
>> array[0...2] 
=> [2, 4] 
+0

很酷。其中一種方法是我在列表中看到的,但從未費心去查明它做了什麼。 。 。 –

+0

對不起,傢伙,措辭嚴厲的問題。這不完全是我的意思。我現在已經附加了它。 – Starkers

+0

@Starkers,我更新了答案。 – falsetru