javascript的二维数组问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 01:48:49
var sz;
sz=new Array()
var i,j,k=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
k=k+1;
sz[i,j]=k;
alert("k="+k);

}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
alert("i,j"+i+" "+j);
alert("sz["+i+","+j+"]="+sz[i,j]);
}
}

我的意思是把这个二维数组分别赋值1,2,3……
但运行却只是7,8,9,7,8,9,7,8,9
哪里出错了啊?
本人刚开始学,有可能是语法错误,请指出哈!
回复2楼:
理想是你说的那样,但运行起却是:
第一次循环进去。[0,0]是7,[0。1]是8,[0,2]是9
第二次循环进去。[1,0]是7,[1。1]是8,[1,2]是9
第三次循环进去。[2,0]是7,[2。1]是8,[2,2]是9
!!!!!

循环赋值是对的,主要是二维数组定义错了,而且给二维数组元素赋值表达式也有错误:正确的代码如下:
function test() {
// 这样只能定义个一维数组
var sz = new Array;
var i,j,k=0;
for(i=0;i<3;i++)
{
// 每个元素再定义一个数组就变成了一个二维数组
sz[i] = new Array;
for(j=0;j<3;j++)
{
k=k+1;
sz[i][j]=k;
alert("k="+k);

}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
alert("i,j"+i+" "+j);
alert("sz["+i+"],["+j+"]="+sz[i][j]);
}
}
}

来,我给你仔细的分析一下。
第一次循环进去。你的二维[0,0]是1,[0。1]是2,[0,2]是3吧。
第二次循环进去。你的二维[1,0]是4,[1。1]是5,[1,2]是6吧。
第三次循环进去。你的二维[2,0]是7,[2。1]是8,[2,2]是9吧。
都是7,8,9了还用我说嘛?呵呵。
是你K的值的问题。想要都是1,2,3那么你的K要放在内层循环里噢。重新=0。这算运行时错误了吧,仔细点。呵呵。刚开始啊。那好好学吧。。。