如何浏览2D阵列的每个项目?

时间:2015-10-28 00:24:59

标签: arrays ruby

所以,我知道你可以浏览像

这样的二维数组
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我似乎无法弄明白。我尝试过切片和嵌套循环,并尝试返回散列而不是数组。我输了。

如果有人有任何关于如何以我尝试的方式提取信息的信息,或者其他更简单的方法,我会非常感谢输入。

2 个答案:

答案 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将其两个元素与短划线连接在一起,将每个内部数组转换为字符串。

请参阅zipmapjoin文档。

一般来说,在研究Ruby中的数组操作时,您将要查看Array和Enumerable文档的文档。

答案 1 :(得分:0)

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

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