问答详情
源自:7-8 返回指定的字符串首次出现的位置

为什么会重复出现

<script type="text/javascript">
  var mystr="Hello World!"

var pos = 0;

for (var i = 0; i < mystr.length-1; i++) {

pos = mystr.indexOf('o', pos);

document.write("'o'出现第" + (i + 1) + "次的位置是" + pos+'<br>');

pos++;

}
</script>

提问者:fengguowuhen1994 2016-01-09 15:26

个回答

  • greenhandc
    2016-01-13 22:11:52

    第一次运行结果,从0开始检索,pos变成了4,然后通过自增,变成了5;

    第二次运行结果,从5开始检索,pos变成了7,通过自增,编程了8;

    第三次运行结果,从8开始检索,pos会得到-1;自增,变成0;

    然后重复第一次运行,so。。。

    如果加上后面的if(pos==-1){break;}就说明在指定检索位置的后面没有o的时候,就跳出循环,从而只有两个结果

  • fengguowuhen1994
    2016-01-09 15:29:22

    如果这样做就是对的,可是不明白为什么,求解吖

    <script type="text/javascript">
       var mystr="Hello World!"

      var pos = 0;

      for (var i = 0; i < mystr.length-1; i++) {

        pos = mystr.indexOf('o', pos);
        if(pos==-1){
            break;
        }

        document.write("'o'出现第" + (i + 1) + "次的位置是" + pos+'<br>');

        pos++;

      }
    </script>