【问题标题】:TypeError: matrix[y].push is not a function when trying to create 2d array with javascriptTypeError: matrix[y].push 不是一个函数,当尝试使用 javascript 创建二维数组时
【发布时间】:2015-03-17 01:11:24
【问题描述】:

我正在尝试创建一个表示矩阵 (256×256) 的数组,其中充满了零,稍后我将使用函数对其进行更改。我尝试使用 for 循环和 .push 函数,但是出了点问题,我无法弄清楚发生了什么。这是我的代码

var matrix = [];

for (x = 0; x < 255; x++) {
   matrix.push([]);
   for (y = 0; y < 255; y++) {
      matrix[y].push([0]);
   }
}

我想要做的是,将一个空数组推入矩阵,用 256 个零填充它,然后再重复 255 次。

【问题讨论】:

  • 你的意思是matrix[x].push对吧?
  • 好吧,目前您正在尝试访问matrix[1],它还不存在。在外循环的第一次迭代中,将[] 添加到matrix(即matrix[0] = [])。内部循环的第一次迭代调用matrix[0].push,这很好。第二次迭代调用matrix[1].push,它失败了,因为您还没有向matrix 添加第二个元素。
  • 呃,我的意思是矩阵[x]。谢谢,将其发布为anwser,如果您愿意,我可以投票。不敢相信它这么明显

标签: javascript arrays


【解决方案1】:

问题是您只推入一个数组,然后尝试填充其中的 255 个。您的代码应该看起来更像这样(假设您想要 256 个零而不是 255)

var matrix = [];

for (var x = 0; x < 256; x++) {
  matrix.push([]);
  for (var y = 0; y < 256; y++) {
    matrix[x].push(0);
  }
}

【讨论】:

    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多