【发布时间】:2015-05-22 05:13:38
【问题描述】:
原始问题:原始问题是如何迭代到嵌套循环 ruby 中的下一个元素。答案教了一种惯用的方法来解决我的问题,它需要一个不同的问题,以便当用户在谷歌上搜索时,找到正确的东西
我有这个要求,其中有两个数组,每个数组都有唯一的值,按排序顺序。
array1 = [2,3,4,5,6,7] #can not have repeated values[2,2,3]
array2 = [2,5,7]
我想匹配两个数组的元素,并在找到匹配项时打印match found,以及两个数组的索引。这是工作正常的代码。
array1.each do |arr1|
array2.each do |arr2|
if (arr1==arr2)
puts ("Match found element #{arr1} #{array1.index(arr1)} #{array2.index(arr2)}")
#some code here to move to the next element in array 1 and array 2 and continue looping from there
end
end
end
但这并没有利用数据结构的独特性和以任何方式排序的质量。例如,在上面的例子中,当array1中的元素2匹配array2中的元素2时,array2中的元素2不应该继续尝试匹配array1的其他元素,并且array1 应该移到下一个。我知道有一个东西叫next。但我认为这只是返回下一个元素而不将迭代器移动到下一个元素?另外我必须移动到两个数组中的下一个。我该怎么做呢?
【问题讨论】: