麻烦循环遍历Ruby中的数组数组

时间:2016-07-04 02:02:40

标签: arrays ruby loops each

我是一名初级Ruby编码员。我目前正试图弄清楚我写的代码有什么问题。基本上,我有一个数组数组,我试图遍历它并将每个数组放入一个字符串。但无论我做什么,除非我做得很长,否则什么都行不通,我真的不想做。 首先,这是我的阵列:

array1 = [["Mittens", "is", "a", "cat"], ["Lily", "is", "a", "dog"], ["Alex", "is", "a", "turtle"]]

我想把结果放在一边,结果就是这样:

Mittens is a cat
Lily is a dog
Alex is a turtle

我一直试图使用这个或其中的变体几个小时:

array1.each do |sub_array|
  sub_array.join(" ")
  puts sub_array
end

但每当我尝试它时,它最终看起来像这样:

Mittens
is
a
cat
Lily
is
a
dog
Alex
is
a
turtle

现在,如果我改变" put"到"打印",我得到了之前得到的三个阵列。所以没有完成放弃,只需要硬编码三个" puts"在我的程序中的陈述,我在这里缺少什么?我知道它一定是一件非常简单的事情,我想写一个循环函数来轻松实现这一点。谢谢你的期待!

2 个答案:

答案 0 :(得分:3)

Array#join不会改变sub_array,它只返回一个字符串。您可以像这样打印sub_array.join(" ")的结果:

array1.each do |sub_array|
  puts sub_array.join(" ")
end

答案 1 :(得分:1)

就像seph所说,join方法返回一个字符串,但不会将数组转换为字符串(http://ruby-doc.org/core-2.2.0/Array.html#method-i-join)。

所以,你可以这样做:

 array1.each do |sub_array|
     sub_array_string = sub_array.join(" ")
     puts sub_array_string
 end