所以,我知道你可以浏览像
这样的二维数组arr1.each do |a1|
a1.each do |a2|
puts a2
然而,我想要做的是有点不同。我有两组存储在数组中的值,我希望能够遍历它们并从信息中填充下拉菜单。
所以我有以下数据:
names = ["bob", "frank", "tim"]
id = [1, 2, 3]
从这样的方法返回数组:
def method_name
#stuff
return names, id
end
我希望在视图中能够做的是将相应的索引相互配对。因此,对于上面的示例,bob-1
frank-2
tim-3
我似乎无法弄明白。我尝试过切片和嵌套循环,并尝试返回散列而不是数组。我输了。
如果有人有任何关于如何以我尝试的方式提取信息的信息,或者其他更简单的方法,我会非常感谢输入。
答案 0 :(得分:2)
(define (tree-node-count t)
(cond ((null? t) 0)
(else (+ 1
(tree-node-count (left t))
(tree-node-count (right t))))))
names.zip(id).map { |e| e.join('-') }
将两个数组组合成一个数组数组,如下所示:
zip
[['bob', 1], ['frank', 2], ['tim', 3]]
循环遍历外部数组的3个元素,并通过使用map
将其两个元素与短划线连接在一起,将每个内部数组转换为字符串。
一般来说,在研究Ruby中的数组操作时,您将要查看Array和Enumerable文档的文档。
答案 1 :(得分:0)
在Ruby中这是一种罕见的情况,其中迭代索引是有帮助的:
(0...names.size).map do |idx|
"#{names[idx]}-#{id[idx]}"
end