我开始学习ruby并试图找出一种方法,如果我有一个16个数字的数组,只使用每种方法一次打印这些数字4。我可以通过循环轻松完成此操作,但我对Ruby中的每个方法都缺乏充分的理解,所以这给我带来了一些麻烦。
我有以下内容:
x=[*1..16]
index=0
x.each do |element|
puts element[index]
index=index+3
end
现在显然这是完全错误的,我知道但我想在这里放一些东西。一点建议会很棒。
谢谢
答案 0 :(得分:6)
可能的解决方案:
a = (1..16)
a.each_slice(4) { |s| p s[3] }
编辑:如果你想在一行上打印4个元素,那么跳到下一行并打印下面的4个元素等等。
a = (1..16)
a.each_slice(4) { |s| puts s.join(' ') }
或仅使用
a = (1..16)
a.each { |i| print i.to_s + ' '; print "\n" if i % 4 == 0 }
答案 1 :(得分:2)
尝试each_slice
http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-each_slice。
使用它看起来像
(1..16).each_slice(4) do |x|
puts x.inspect
end