我正在尝试填充动态三维数组,因此我不必全部输入
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
任何帮助......好吗? :(
答案 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),
...
}