Ruby Iteration - 尝试在一次传递中匹配两个数字

时间:2011-10-19 21:54:35

标签: ruby arrays iteration

说我有一个类似的数组:

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。

4 个答案:

答案 0 :(得分: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 :(得分:1)

a.each_cons(2).include?([b,c])

答案 2 :(得分:0)

是否需要在循环中执行它,或者你可以简单地跟踪每个变量是否是所讨论数组的member??或者将它们放入哈希/集合并确保每个密钥都包含在内?或者保持循环,并保持逻辑或运算是否或每个var是member?或者向Array添加members?方法,并传入一个数组来检查,或者......

这应该足以让你开始。

答案 3 :(得分:0)

不要使用

a.each_slice

获取一系列配对对象。

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