我尝试在db中创建所有用户的金字塔样式列表。 它应该看起来像这样:
01
02 03
04 05 06
我尝试使用in_groups_of播放arround,它将元素分组为x,但即使这样也无法正常工作,因为当我选择in_groups_of(2)并放置div时,它会给我一个包含两个用户的div 。但我想为每个用户和上述设置提供一个div。
我知道它一定是这样的:
n=1
items per line = n
and after eachline n=n+1
但我不知道如何在RoR中实现这一目标。
答案 0 :(得分:1)
每次创建一个金字塔时,你可以shift
数组越来越多:
arr = %w(01 02 03 04 05 06 07 08 09 10 11)
n = 1
until arr.empty?
edge = arr.shift(n)
edge.fill('--', edge.length...n)
puts edge.join(' ').center(20)
n += 1
end
# 01
# 02 03
# 04 05 06
# 07 08 09 10
# 11 -- -- -- --
请注意,在此方法中,arr
在创建金字塔时被销毁,并且在迭代结束时它将是一个空数组。如果你想保留它,在开始之前你需要dup
它。