Ruby每一个嵌套数组都返回不一致的结果

时间:2018-09-25 10:50:30

标签: arrays ruby

我们有一个数组数组:matrix = [[0, 1, 1, 2], [0, 5, 0, 0], [2, 0, 3, 3]]

现在,打电话

matrix.each do |x| 
  print x
end

返回我期望的三个数组([0, 1, 1, 2][0, 5, 0, 0][2, 0, 3, 3])。

但是在做

matrix.each do |x| 
    if x.include?(0)
        z_index = x.index(0)
        for zero in z_index
            for x in matrix do
                matrix[i].delete_at(zero)
                i+=1
            end
        end
    else
        next
    end
end

我得到undefined method 'each' for 0:Integer,这意味着each在第一个嵌套数组中拾取0,而不是在拾取整个第一个嵌套数组。为什么会这样呢?

1 个答案:

答案 0 :(得分:2)

完成时

for zero in z_index 

这实际上是

z_index.each do |zero|

in循环的for in部分必须可以迭代(数组)

z_indexx的第一个元素,它也是matrix的第一个元素,因此它包含一个整数。