在Ruby中使用每个

时间:2012-01-04 20:49:41

标签: ruby

我开始学习ruby并试图找出一种方法,如果我有一个16个数字的数组,只使用每种方法一次打印这些数字4。我可以通过循环轻松完成此操作,但我对Ruby中的每个方法都缺乏充分的理解,所以这给我带来了一些麻烦。

我有以下内容:

x=[*1..16]
index=0
x.each do |element|
  puts element[index]
  index=index+3
end

现在显然这是完全错误的,我知道但我想在这里放一些东西。一点建议会很棒。

谢谢

2 个答案:

答案 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