Динамически заполняющий 3D массив в JavaScript - PullRequest
0 голосов
/ 21 июня 2010

Я пытаюсь заполнить динамический 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

Любая помощь.. пожалуйста?(

1 Ответ

1 голос
/ 21 июня 2010

В 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),
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...