我正在尝试将 Java 代码转换为 Javascript,并且正在尝试将数据分配给 3 维数组,但出现“TypeError:无法将 undefined 转换为对象”错误。以下是我的代码。在此先感谢您的帮助。
var initData = [[2], [12], [2]];
for (var i = 0; i < 12; i++)
{
initData[0][i][0] = -1;
initData[0][i][1] = -1;
initData[1][i][0] = -1;
initData[1][i][1] = -1;
}
最佳答案
[[2], [12], [2]];
这不是维度声明,而是四个 array literals . JS 中没有多维数组。它们只是可以包含任意值的一维列表(包括其他列表)。
要创建和填充包含其他数组的数组,您必须使用以下命令:
var initData = []; // an empty array
for (var i = 0; i < 2; i++) {
initData[i] = []; // that is filled with arrays
for (var j = 0; j < 12; j++) {
initData[i][j] = []; // which are filled with arrays
for (var k = 0; k < 2; k++) {
initData[i][j][k] = -1; // which are filled with numbers
}
}
}
或者,应用您的 loop unrolling :
var initData = [[], []]; // an array consisting of two arrays
for (var i = 0; i < 12; i++) {
// which each are filled with arrays that consist of two numbers
initData[0][i] = [-1, -1];
initData[1][i] = [-1, -1];
}
关于Javascript:将数据分配给多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085132/