为了账号安全,请及时绑定邮箱和手机立即绑定

关于数组的三行五列输出问题

<!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?求告诉

正在回答

6 回答

你把第二个document输出语句删掉就可以了,另外楼上小果与说的也对,可以另外给你的数组Myarry[i][6]赋初值,但是建议把下面的输出语句删掉就可以了

0 回复 有任何疑惑可以回复我~

这是一个常见的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。

0 回复 有任何疑惑可以回复我~

你这是三行六列吧?

第二个document.write,没有j这个变量。

0 回复 有任何疑惑可以回复我~

额,那两个var不要也行

0 回复 有任何疑惑可以回复我~

<!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>

这样就行了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于数组的三行五列输出问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信