迭代嵌套列表中的元素

时间:2012-03-04 05:20:52

标签: ruby list iteration

要遍历单维数组中的元素,我可以使用

array = [1, 2, 3, 4, 5, 6]
array.each { |x| puts x }

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

two_d_array = [[1,2], [3,4], [5,6]]
two_d_array.each{|array| puts array}

我希望获得[1, 2], [3, 4], [5, 6],以便我可以单独访问列表中的每个元素并对其执行某些操作,例如array[1] = "new_value",但它会123456我想避免使用matrix如果可能的话。

1 个答案:

答案 0 :(得分:6)

实际上each 的行为方式符合您的预期,但是puts命令使得它看起来好像数组已预先展平。如果您添加inspect,则会变得清晰:

>> two_d_array.each{|array| puts array.inspect}
[1, 2]
[3, 4]
[5, 6]

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