ruby-on-rails - Ruby,多维数组推送错误

标签 ruby-on-rails arrays ruby

  array = [[]]
  for level in 0..counter-1
    for line in 0..counter-1
      array[level].push(rectangle[x+level][y+line])
    end
  end

我收到此错误 NoMethodError: undefined method `push' for nil:NilClass

我想找到矩形内的所有正方形,但是当我尝试将该正方形保存到自定义数组时出现错误。

array[level].push(rectangle[x+level][y+line])

我在这里要做的就是生成一个正方形,例如 array[[3, 4],[5, 2]]

3 4 5 2。 问题是使用数字而不是变量的 array[0].push(rectangle[x+level][y+line]) 正在工作,但是对于变量“level”它给了我错误,但是如果我使用常数,我无法生成多级数组。

有什么帮助吗?

最佳答案

问题是 array 只有一个元素,这就是它在 level = 0 时工作的原因。您可以像这样轻松修复它:

 array = []
 for level in 0..counter-1
   array.push []
   for line in 0..counter-1
     array[level].push(rectangle[x+level][y+line])
   end
 end

关于ruby-on-rails - Ruby,多维数组推送错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264907/

相关文章:

ruby-on-rails - 如何有效地搜索加密字段?

c - 更改单词/C 的字母

java - Do - 在用户输入正确或不正确的参数后,While 循环不会继续

ruby - 我如何在命令行中捕获值并添加到配方中?

ruby-on-rails - 对多个模型的评论

sql - 如何计算一定时期内的平均持仓

ruby-on-rails - 如何在 Rails 中将数组对象转换为散列

python - Numpy:为矩阵的每一列选择特定行的值

ruby-on-rails - 从生产 irb 调试方法

ruby - 动态获取定义的常量