说我有一个数组,如:红宝石迭代 - 尝试在单次匹配两个数字
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.
说我有一个数组,如:红宝石迭代 - 尝试在单次匹配两个数字
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.
不要使用
a.each_slice
要得到一系列配对的对象。
按照steenslag或glenn mcdonald的建议使用each_cons。
你需要做在一个循环中,或可你只是跟踪如果每个变量是有问题的阵列的member?
?或者把它们放到一个散列/集合中并确保每个键都包含在内?或保持循环,并保持逻辑ORing是否或每个var是否为member?
或将members?
方法添加到数组,你开始了。
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
a.each_cons(2).include?([b,c])
不,'a.each_slice(2)'会给你[1,2] [3,4]和[5,6],其如果你正在寻找b = 2 c-3,那么它将不起作用。 –
@glennmcdonald:你说得对。谢谢。 –