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

为什么输出不了结果?

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>二维数组</title>

<script type="text/javascript">

var myarr=new Array();

   for(var i=0;i<3;i++)

    {myarr[i]=new Array()

     for(var j=0;j<6;j++)

     {

       myarr[i][j]=i*j;

     }

     document.write(myarr[i][j])

    } 

</script>

</head>


<body>

</body>

</html>


正在回答

5 回答

循环部分有问题,document.write(myarr[i][j])应该放到第二个for循环内部,否则下标j没有定义,具体如下:

  for(var i=0;i<3;i++)

    {myarr[i]=new Array()

     for(var j=0;j<6;j++)

     {

       myarr[i][j]=i*j;

document.write(myarr[i][j])//应该在这里

     }

    // document.write(myarr[i][j])

    } 


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

慕粉1469604703 提问者

非常感谢!没有注意到变量的问题,学到了
2016-08-30 回复 有任何疑惑可以回复我~

在你的循环体内,你循环的时候,第一项、第二项的没有初始值即undefined,所以每次拼接字符串的时候前面都有undefined。不知道说的清楚吗,希望能帮到你

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

  for(var i=0;i<3;i++)

    {myarr[i]=new Array()

     for(var j=0;j<6;j++)

     {

       myarr[i][j]=i*j;

  document.write(myarr[i][j])

     }

    }


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

  document.write(myarr[i][j]),应该写在第二个循环里面即j循环里面

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

因为你把输出放进了第一个循环体里,每次输出的是myarr[0][6],myarr[1][6],这当然没有值了

你把输出放进第二个循环体里再看看

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

慕码人8968564

输出的是myarr[0][j] myarr[1][j] myarr[2][j],j是局部变量,在j循环外面j是无效的变量
2016-08-30 回复 有任何疑惑可以回复我~
#2

慕粉123456099

好的,学到了,谢谢啊
2016-08-30 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

为什么输出不了结果?

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