要遍历单维数组中的元素,我可以使用
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如果可能的话。
答案 0 :(得分:6)
实际上each
块 的行为方式符合您的预期,但是puts
命令使得它看起来好像数组已预先展平。如果您添加inspect
,则会变得清晰:
>> two_d_array.each{|array| puts array.inspect}
[1, 2]
[3, 4]
[5, 6]
因此每次迭代中的array
变量将是嵌套数组元素。