我是一名初级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"在我的程序中的陈述,我在这里缺少什么?我知道它一定是一件非常简单的事情,我想写一个循环函数来轻松实现这一点。谢谢你的期待!
答案 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