<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>二维数组</title>
<script type="text/javascript">
Myarry=new Array();
for( i=0;i<3;i++){
Myarry[i]=new Array();
for(j=0;j<6;j++)
{Myarry[i][j]=i*j;
document.write(Myarry[i][j]+"</br>");
}
document.write(Myarry[i][j]+"</br>");
}
</script>
</head>
<body>
</body>
</html>
结果:
0
0
0
0
0
0
undefined
0
1
2
3
4
5
undefined
0
2
4
6
8
10
undefined
不用var定义就是想变成全局变量,为什么还是undefined?求告诉
你把第二个document输出语句删掉就可以了,另外楼上小果与说的也对,可以另外给你的数组Myarry[i][6]赋初值,但是建议把下面的输出语句删掉就可以了
这是一个常见的for循环问题。
结果出现在的undefined全部都是内部的for(j=0;j<6;j++)循环之后那个document.write(Myarry[i][j]),原因是:
在for(j=0;j<6;j++)循环体执行完之后,最后一步需要执行j++,即循环执行完毕之后j的值是6,所以后面那个document.write(Myarry[i][j])就等同于:document.write(Myarry[i][6]),而前面没在给这个数组项赋值(最多只赋值到Myarry[i][5]),所以输出结果就是undefined。
你这是三行六列吧?
第二个document.write,没有j这个变量。
额,那两个var不要也行
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>二维数组</title>
<script type="text/javascript">
Myarry=new Array();
for(var i=0;i<3;i++){
Myarry[i]=new Array();
for(var j=0;j<6;j++)
{Myarry[i][j]=i*j;
document.write(Myarry[i][j]);
}
document.write("</br>");
}
</script>
</head>
<body>
</body>
</html>
这样就行了