在JavaScript中动态填充3D数组

时间:2010-06-21 16:25:36

标签: javascript html arrays multidimensional-array

我正在尝试填充动态三维数组,因此我不必全部输入

var o = {
  matrix: (function(n) {
    for (var x = 0; x < n; x ++) {
      for (var y = 0; y < n; y++) {
        for (var z = 0; z < n; z++) {
          this[x][y][z] = -1;
        }
      }
    }
  }).call(Array, 5),
  ...
}

我得到的消息是Uncaught TypeError: Cannot read property '0' of undefined

任何帮助......好吗? :(

1 个答案:

答案 0 :(得分:1)

JavaScript中没有明确的多维数组支持,只是数组的数组。您需要在填充数组之前初始化数组:

var o = {
  matrix: (function(a, n) {
    for (var x = 0; x < n; x++) {
      a[x] = [];
      for (var y = 0; y < n; y++) {
        a[x][y] = [];
        for (var z = 0; z < n; z++) {
          a[x][y][z] = -1;
        }
      }
    }
    return a;
  })([], 5),
  ...
}