迭代嵌套列表中的元素

Pri*_*han 2 ruby iteration list

要迭代单维数组中的元素,我可以使用

array = [1, 2, 3, 4, 5, 6]
array.each { |x| puts x }
Run Code Online (Sandbox Code Playgroud)

我有什么方法可以为嵌套列表或二维数组执行此操作?在这段代码中:

two_d_array = [[1,2], [3,4], [5,6]]
two_d_array.each{|array| puts array}
Run Code Online (Sandbox Code Playgroud)

我希望得到[1, 2], [3, 4], [5, 6]这样我可以单独访问列表中的每个元素并对其进行一些操作array[1] = "new_value",但是它给出了 123456我希望尽可能避免使用矩阵.

Jon*_*n M 6

实际上,each的确按照您期望的方式运行,但该puts命令使得它看起来好像数组已预先展平.如果你添加一个inspect,这变得清晰:

>> two_d_array.each{|array| puts array.inspect}
[1, 2]
[3, 4]
[5, 6]
Run Code Online (Sandbox Code Playgroud)

因此array,每次迭代中的变量将是嵌套数组元素.