2011-10-19 30 views
0

說我有一個數組,如:紅寶石迭代 - 嘗試在單次匹配兩個數字

a = [1, 2, 3, 4, 5, 6] 

,我有兩個變量是這樣的:

b = 3 
c = 4 

我想要做的事像這樣:

a.each do |i| 
    if(b = = i) and (c == i.next(I don't think I can do this)) 
    return true 
    end 
    end 

任何幫助,將不勝感激。

史蒂夫G.

回答

0

不要使用

a.each_slice 

要得到一系列配對的對象。

按照steenslag或glenn mcdonald的建議使用each_cons。

+1

不,'a.each_slice(2)'會給你[1,2] [3,4]和[5,6],其如果你正在尋找b = 2 c-3,那麼它將不起作用。 –

+0

@glennmcdonald:你說得對。謝謝。 –

0

需要做在一個循環中,或可你只是跟蹤如果每個變量是有問題的陣列的member??或者把它們放到一個散列/集合中並確保每個鍵都包含在內?或保持循環,並保持邏輯ORing是否或每個var是否爲member?或將members?方法添加到數組,你開始了。

3

each_cons你想要做什麼:

a = [1, 2, 3, 4, 5, 6] 
b=3 
c=4 
a.each_cons(2){|v1, v2| puts(b == v1 && c == v2)} 
# output: 
# false 
# false 
# true 
# false 
# false 
1
a.each_cons(2).include?([b,c])