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!你应该看看内森的答案。它更红。