将八个对象铲入每个数组索引ruby中

Rob*_*ews 1 ruby arrays refactoring arrayofarrays

有没有办法重构这段代码?第一个片段是我现在拥有的,第二个是我试图制作的逻辑.

count = 0
until count >= board.length
  if board[count] == nil
    board[count] = [nil, nil, nil, nil, nil, nil, nil, nil,]
  end
  count += 1
end
board
Run Code Online (Sandbox Code Playgroud)

在我的第四行,我想做类似的事情

board[count] = (8.times { board[count] << nil })
Run Code Online (Sandbox Code Playgroud)

我知道这只是一段时间.我只是好奇或者想要清除我的逻辑...谢谢!!

Urs*_*sus 8

尝试使用Array的构造函数

Array.new(8)
 => [nil, nil, nil, nil, nil, nil, nil, nil] 

Array.new(8, 42)
 => [42, 42, 42, 42, 42, 42, 42, 42] 
Run Code Online (Sandbox Code Playgroud)

如果你需要一个对象并且不希望每个实例都相同,则传递一个块

Array.new(8) { Hash.new }
 => [{}, {}, {}, {}, {}, {}, {}, {}] 
Run Code Online (Sandbox Code Playgroud)