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

来源:3-7 二维数组

少年你等等我

2017-07-02 09:45

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

写回答 关注

5回答

  • qq_下一站邂逅_1
    2017-07-08 18:43:31

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

  • 小果yu
    2017-07-02 10:45:11

    这是一个常见的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
    2017-07-02 10:14:51

    你这是三行六列吧?

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

  • 别抢我的未来
    2017-07-02 10:05:38

    额,那两个var不要也行

  • 别抢我的未来
    2017-07-02 10:04:33

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

    这样就行了

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题