Ruby输出数组每个元素都带有缩进的新行

时间:2015-12-08 18:15:13

标签: arrays ruby

我有array = [1,2,3,4,5]

array.each do |e|
 ...
end

所以我需要像

一样输出它
1
 2
  3
  4
  5

我该怎么做?(如何输出特定的顺序)

2 个答案:

答案 0 :(得分:0)

假设您从1到array得到了array.length的int,并且您希望将第一个n元素打印为0到n - 1个空格,并且然后进入专栏。

例如,n = 3array = [1, 2, 3, 4, 5]的输出将为

1     # 0     whitespaces
 2    # 1     whitespace
  3   # n - 1 whitespaces
  4   # n - 1 whitespaces
  5   # n - 1 whitespaces

打印该序列的代码是

arr.each { |e| puts ( (e <= n ? " " * (e - 1) : " " * (n - 1)) + e.to_s ) }

假设n > 0

答案 1 :(得分:0)

可能还要坚持下去:

array = [1,2,3,4,5]
#array.map(&:to_s).each_with_index { |value, index| puts value.rjust(index < 3 ? index+1 : 4) }
array.each_with_index { |value, index| puts value.to_s.rjust(index < 3 ? index+1 : 4) }