Arrays 如何浏览二维阵列的每个项目?

Arrays 如何浏览二维阵列的每个项目?,arrays,ruby,Arrays,Ruby,我知道你可以用类似的东西在二维数组中导航 arr1.each do |a1| a1.each do |a2| puts a2 然而,我尝试做的是有点不同。我有2组存储在数组中的值,我希望能够循环使用它们,并从信息中填充下拉菜单 所以我有如下数据: names = ["bob", "frank", "tim"] id = [1, 2, 3] 它在数组中从如下方法返回: def method_name #stuff return names, id end 我想在视图中能

我知道你可以用类似的东西在二维数组中导航

arr1.each do |a1|
  a1.each do |a2|
    puts a2
然而,我尝试做的是有点不同。我有2组存储在数组中的值,我希望能够循环使用它们,并从信息中填充下拉菜单

所以我有如下数据:

names = ["bob", "frank", "tim"] 
id = [1, 2, 3]
它在数组中从如下方法返回:

def method_name
  #stuff
  return names, id
end
我想在视图中能够做的是将相应的索引彼此配对。因此,对于上面的例子,
bob-1
frank-2
tim-3
我似乎无法理解。我尝试过切片和嵌套循环,也尝试过使用散列而不是数组返回。我迷路了


如果有人知道如何以我尝试的方式获取信息,或者以另一种更简单的方式获取信息,我将非常感谢您的输入。

这在Ruby中是一种罕见的情况,在索引上进行迭代很有帮助:

(0...names.size).map do |idx|
  "#{names[idx]}-#{id[idx]}"
end
names.zip(id).map{| e | e.join('-')}

zip
将两个数组组合成如下数组:

def method_name
  #stuff
  return names, id
end
[['bob',1],'frank',2],'tim',3]

map
循环遍历外部数组的3个元素中的每个元素,并使用
join
将每个内部数组的两个元素用破折号连接在一起,从而将其转换为字符串

请参阅,以及文档


一般来说,在Ruby中研究数组操作时,您需要查看数组文档和可枚举文档。

先生/女士,您是英雄。我以前甚至不知道map方法。我很高兴我问了,因为我的头痛已经小了,哈哈。再次感谢@seph!你应该看看内森的答案。它更红。