遇到以某种方式迭代输出的问题

时间:2017-02-16 18:41:45

标签: arrays ruby iteration

我正在练习在Ruby中使用数组和迭代。我能够理解代码的上下文,但我遇到了以某种方式显示输出的问题。

我的预期输出是:

0 0 0 0
0 1 0 0 
0 0 0 1
0 0 0 0 

目前的输出是:

0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0

我的代码是:

class Image
  def initialize(image)
    @image = image
  end

  def output_image
    @image.each_index do |array|
      subarray = @image[array]
      subarray.each do |cell|
        if array[0]
          print "#{cell} \n"
        elsif array[1]
          print "#{cell} \n"
        elsif array[2]
          print "#{cell} \n"
        elsif array[3]
          print "#{cell} \n"
        end
      end
    end
  end
end

image = Image.new([
  [0, 0, 0, 0],
  [0, 1, 0, 0],
  [0, 0, 0, 1],
  [0, 0, 0, 0]
 ])

 image.output_image

2 个答案:

答案 0 :(得分:1)

你认为,这让你不必要地复杂化了。您可以迭代子数组并使用空格连接它们。

def output_image
  @image.each do |image|
    puts image.join(' ')
  end
end

答案 1 :(得分:1)

https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules来到这里救援。使用空格连接行,使用回车符连接结果,获利。

{{1}}