如何映射嵌套数组

Ste*_*low 4 ruby arrays multidimensional-array

我有一个数组:

my_array = [[1,2,3,4],
            [5,6,7,8],
            [9,10,11,12]]
Run Code Online (Sandbox Code Playgroud)

我想迭代每个"单元格"并将值更改为其他内容.如何在不展平数组和重构的情况下执行此操作.就像是:

   my_array.each_with_index do |row, row_index|
      row.each_with_index do |cell, col_index|
        my_array[row_index][col_index] = random_letter
      end
    end
Run Code Online (Sandbox Code Playgroud)

上面的方法并不完全证明我的想法(随机字母的工作,但每行与最后一行有相同的随机字母,顺序相同)

思考?

saw*_*awa 9

您根本不需要索引.

my_array.map{|row| row.map{random_letter}}
Run Code Online (Sandbox Code Playgroud)

如果要保留每个数组的对象ID并更改内容,则可以使用replace.

my_array.each{|row| row.replace(row.map{random_letter})}
Run Code Online (Sandbox Code Playgroud)