> 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
太难看了。实现这一目标有美吗?
答案 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