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

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

<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 回答

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

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

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

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

何尔墨斯 提问者

对,是因为遇到了undefined所以不再执行了。谢谢
2016-11-17 回复 有任何疑惑可以回复我~
<!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 回复 有任何疑惑可以回复我~

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

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

举报

0/150
提交
取消

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

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