for循环嵌套了if或indexof就不再继续执行,为什么?

来源:3-8 编程练习

何尔墨斯

2016-11-17 14:15

<script type="text/javascript">

   var  myarr = ['*','##',"***","&&","****","##*"];

   myarr[7] = "**";

   var arr=new Array();

 document.write(myarr.length+"<br>");

 //将数组内容输出,完成达到的效果。

 for(var i=0;i<9;i++){

if(myarr[i][0]=="*"){

arr[i]=myarr[i];

}

document.write("arr第"+i+"个数据是:"+arr[i]+"<br>");

}

document.write(arr.length);

</script>

请问为什么在执行完for循环之后下面的就不执行了?无论我接下来打印什么,都不会有输出?是哪里的问题呢?


写回答 关注

3回答

  • 初者
    2016-11-17 14:35:48
    已采纳

    什么叫做不执行? 你原本的代码还是可以执行的,结果为

    8
    arr第0个数据是:*
    arr第1个数据是:undefined
    arr第2个数据是:***
    arr第3个数据是:undefined
    arr第4个数据是:****
    arr第5个数据是:undefined

    当数组第6个为undefined,就会执行报错if(myarr[i][0]=="*"){

    何尔墨斯

    对,是因为遇到了undefined所以不再执行了。谢谢

    2016-11-17 15:03:31

    共 1 条回复 >

  • 慕少1893982
    2016-11-17 14:40:47
    <!DOCTYPE  HTML>
    <html >
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>数组</title>
    <script type="text/javascript">
     //创建数组
     var  arr = ['*','##',"***","&&","****","##*"];
     arr[7]="**";
     //显示数组长度
     alert (arr.length);
     //将数组内容输出,完成达到的效果。
    
        document.write(arr[0]+"<br/>"+arr[7]+"<br/>"+arr[2]+"<br/>"+arr[4]+"<br/>");
        console.log(arra)
    </script>
    </head>
    <body>
    </body>
    </html>


  • 太0
    2016-11-17 14:36:45

    当然中止的是循环,即满足IF语句的条件之后,从break的位置跳出循环,不再执行break之后到for结束的“}”之间的语句

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题