有没有一种美妙的方法来模拟每个数字或周期(4)?

时间:2012-03-25 07:07:51

标签: ruby

> a = %w[foo1 foo2 foo3 foo4 foo5 foo6]
 => ["foo1", "foo2", "foo3", "foo4", "foo5", "foo6"] 


> a.each_with_index {|b,i| puts "b #{i}"; puts "== mod4 "  if i%4==0}
b 0
== mod4 
b 1
b 2
b 3
b 4
== mod4 
b 5

我有array a。我想迭代每个元素并且每4个元素放置一些东西。 然而, if i%4 == 0太难看了。实现这一目标有美吗?

1 个答案:

答案 0 :(得分:2)

你要做的事情很不寻常。边界条件怎么样?

也许您可以成功使用each_slice

a.each_slice(4) do |group|
  group.each{|i| p i}
  puts "== mod4"
end

# Prints:
"foo1"
"foo2"
"foo3"
"foo4"
== mod4
"foo5"
"foo6"
== mod4