为什么会重复检索同一个字符串呢?

来源:7-8 返回指定的字符串首次出现的位置

qq_彼岸花开想念莫离_0

2017-09-10 09:23

<!DOCTYPE html>

<html>

 <head>

  <title> 事件</title>  

  <script type="text/javascript">

 var str="hello world!ol ol ol ol ol olc"


 var con=0;

 for(i=0;i<7;i++){

      cin=str.indexOf("o",con);

 if(con!=str.length-1){

      con=con+1;

 }

 else{break;}

 document.write(cin);

 }


</script>

 </body>

</html>


写回答 关注

5回答

  • 茶街小混混
    2017-12-11 11:31:50

    把  con=con+1改成con=cin+1就行了

  • 一只胡思乱想的猪
    2017-09-23 20:01:41
    <!DOCTYPE html>
    <html>
     <head>
      <title> 事件</title>  
      <script type="text/javascript">
    	 var str="hello world!ol ol ol ol ol olc"
    	 var cin;
    	 var con=0;
    	 for(i=0;i<7;i++){
    		  cin=str.indexOf("o",con);
    	 if(con!=str.length-1){
    		  con=con+1;
    	 }
    	 else{break;}
    	 }
    	document.write(cin);
    </script>
     </body>
    </html>


  • 作孽的赌徒_
    2017-09-16 10:43:04

    for循环里面从0开始检索,检索到第一个o在4,输出4,满足不等于检索值的条件,0+1从1开始找,又找到o在4,输出4,还是不满足等于检索值的条件,1+1从2开始找,一直到con=5开始找下一个,找到o在7,输出7,满足不等于检索值的条件,5+1从6开始找,找到o在7,输出7,6+1=7不满足for语句里面的i<7的条件,循环结束。

    电脑要是知道你怎么想的一定会说:妈的智障

    作孽的赌徒_

    而且你这个循环写的是寻找最后一个o的位置,如果你把i<7改成str.length或者str.length-1就会发现输出是-1,改成str.length-2就会发现输出是27.因为str.length 不存在,而str.length-1满足if判断条件里的else,直接就中断了,没有值输出。

    2017-09-16 10:55:09

    共 3 条回复 >

  • 慕盖茨8021033
    2017-09-10 12:20:10

    想要学习JavaScript, 最好先学习一下JavaSE的基础啊,里面的语法都差不多啊.

    qq_彼岸花...

    这样子好吗?

    2017-09-10 18:44:07

    共 1 条回复 >

  • 慕丝1142991
    2017-09-10 11:34:41

    因为你写了循环啊。。。。

    qq_彼岸花...

    我意思是一直重复同一个O,不是应该下一个O吗?

    2017-09-10 18:43:19

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题