我正在尝试将Java代码转换为Javascript,并试图将数据分配给3维数组,并且出现“ TypeError:无法将未定义的对象转换为对象”错误。以下是我的代码。在此先感谢您的帮助。
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];
}