我正在尝试通过使用三级嵌套四循环来分配一系列81个盒子的自动i.d号码。这是我的代码。
function printBoxes()
{
alert("Function Entered");
var box = new Array();
alert("Array Created");
for(var i = 0; i < 9; i++)
{
for(var j = 0; j < 3; j++)
{
for(var k = 0; k < 3; k++)
{
box[i, j ,k] = [i, j, k];
}
}
}
alert(box[3,5,1]);
alert("Arrays Created");
for(var a = 0; a < 9; a++)
{
document.writeln("<br>");
for(var b = 0; b < 3; b++)
{
for(var c = 0; c < 3; c++)
{ document.writeln("<FORM inputs>")
document.write("<INPUT type = 'text' id = ' " + box[a,b,c] + " ' value = ' " + box[a,b,c] + "' size = '1' maxlength = '1'/>");
document.writeln("<//FORM>")
}
}
}
}
我的问题是这样的:虽然我可以使用一个警告框来看每个盒子被分配一个正确的id,但是在它离开main for循环后,我最终分别以1/3 820s,821和822结束。我该如何解决这个问题?
答案 0 :(得分:7)
JavaScript中没有特殊情况的多维数组 - 只有数组,可以包含数组。因此,每次为每个维度创建一个新数组:
var box = [];
for(var i = 0; i < 9; i++)
{
box[i] = [];
for(var j = 0; j < 3; j++)
{
box[i][j] = [];
for(var k = 0; k < 3; k++)
{
box[i][j][k] = [i, j, k];
}
}
}
......例如。这假装工作的原因是JavaScript有一个逗号运算符,它将评估其操作数并返回正确的操作数,因此box[i, j, k]
实际上仅仅意味着box[k]
。