【问题标题】:Dynamically populating 3D array in JavaScript在 JavaScript 中动态填充 3D 数组
【发布时间】:2011-03-06 09:54:42
【问题描述】:

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

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

任何帮助......请? :(

【问题讨论】:

    标签: javascript html arrays multidimensional-array


    【解决方案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),
      ...
    }
    

    【讨论】:

    • ??这行得通。它只初始化一次它需要的所有数组。数组不是稀疏的。
    • 忽略我以前的。好方法。
    猜你喜欢
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 2017-05-20
    • 2015-08-15
    • 2012-02-09
    • 1970-01-01
    相关资源
    最近更新 更多