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我希望尽可能避免使用矩阵.
实际上,each块的确按照您期望的方式运行,但该puts命令使得它看起来好像数组已预先展平.如果你添加一个inspect,这变得清晰:
>> two_d_array.each{|array| puts array.inspect}
[1, 2]
[3, 4]
[5, 6]
Run Code Online (Sandbox Code Playgroud)
因此array,每次迭代中的变量将是嵌套数组元素.