Arrays 在Ruby中运行并行循环

Arrays 在Ruby中运行并行循环,arrays,ruby,loops,Arrays,Ruby,Loops,我有两组数组存储在一个文件中,我需要逐个提取值并比较它们。我正在使用这段代码,但看起来我做得很正确 # First Dataset File.foreach(file_set_a) do |data_a| data_array_a = data_a.split("\t") @file_name_a = data_array_a[0] @file_ext_a = data_array_a[1] # Second Dataset File.foreach(file_set_b

我有两组数组存储在一个文件中,我需要逐个提取值并比较它们。我正在使用这段代码,但看起来我做得很正确

# First Dataset
File.foreach(file_set_a) do |data_a|

  data_array_a = data_a.split("\t")
  @file_name_a = data_array_a[0]
  @file_ext_a = data_array_a[1]

  # Second Dataset
  File.foreach(file_set_b) do |data_b|

    data_array_b = data_b.split("\t")
    @file_name_b = data_array_b[0]
    @file_ext_b = data_array_b[1]

    #Compare
    @file_name_a == @file_name_b 
  end
end

问题是,当我输入集合B时,我无法返回并提取集合A中的下一个值。有什么建议吗?

首先,将这两个文件转换为两个独立的数据数组

lines_array_a = File.readlines(file_set_a)
lines_array_b = File.readlines(file_set_b)
我假设两个数组的大小相同。现在运行一个循环并从两个数组中获取项目以进行比较

for i in 0..(lines_array_a.count - 1) do
  data_array_a = lines_array_a[i].split("\t")
  @file_name_a = data_array_a[0]
  @file_ext_a = data_array_a[1]

  data_array_b = lines_array_b[i].split("\t")
  @file_name_b = data_array_b[0]
  @file_ext_b = data_array_b[1]

  @file_name_a == @file_name_b
end

不清楚你想在这里做什么。也许给出一个输入数据的示例,以及在“比较”它们之后您最终想要做什么。可能有更好的方法可以做到这一点。您的解决方案假设行是同步的。最初的问题是扫描第二个文件中的每个
file\u a
行,在
file\u b
@KimmoLehto中查找匹配行。我在这里试图说明的要点是,首先从这些文件创建数据数组,然后使用这些数据数组。我无法返回并提取下一个值的问题的原因是因为他使用了嵌套循环,而我在方法中试图避免使用嵌套循环。TIA。它可以扫描集合A中每个项目的集合B的内存数据,以找到匹配的对。