我正在尝试编写一个接受嵌套数组的循环,并一次创建一个包含两个连续元组的子数组。输入数组可能是这样的
arr = [['A','B'],['C','D'],['E','F'],['G','H'],['I','J'],['K','L'],
['M','N'],['O','P']]
Output: ['A','B'],['C','D']
['E','F'],['G','H']
['I','J'],['K','L']
['M','N'],['O','P']
我尝试过各种循环,比如
arr.each_slice(2) do |k,m|
new_arr=[k,m]
puts new_arr
end
和
arr.each_slice(2) { |k,m| puts(k,m) }
这有什么问题?在这两种情况下,输出都是
A
B
C
D .....
答案 0 :(得分:5)
这就是puts
如何处理ruby 1.9,it prints each element on a new line中的数组。结果就是你想要的,打印时看起来不同:)例如,尝试使用.inspect
进行打印。
arr = [['A','B'],['C','D'],['E','F'],['G','H'],['I','J'],['K','L'],
['M','N'],['O','P']]
arr.each_slice(2) do |k,m|
new_arr = [k,m]
puts new_arr.inspect
end
# >> [["A", "B"], ["C", "D"]]
# >> [["E", "F"], ["G", "H"]]
# >> [["I", "J"], ["K", "L"]]
# >> [["M", "N"], ["O", "P"]]
http://www.ruby-doc.org/core-1.9.3/IO.html#method-i-puts
puts(obj,...)→nil
将给定对象写入ios,与IO#print一样。在没有以换行符结束的任何内容之后写入记录分隔符(通常是换行符)。如果使用数组参数调用,则将每个元素写入新行。如果不带参数调用,则输出单个记录分隔符。
$stdout.puts("this", "is", "a", "test")
产生
this
is
a
test