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

为什么最后要写+1

  var mystr="Hello World!"

  document.write(mystr.indexOf("o",mystr.indexOf("o")+1));


提问者:KARLA 2016-04-19 11:01

个回答

  • 慕村1994845
    2016-09-18 19:29:11

    <script type="text/javascript">
      var mystr="Hello World!"
      document.write(mystr.indexOf("o",7)+"<br>");//字符串位置从0开始,所以第二个o的位置是7;x.indexOf("o",7)中的7与输出结果7意义不一样;输出结果中7其实是第8个位置,只是首位以0开始,所以第8个位置便是7
       document.write(mystr.indexOf("o",(mystr.indexOf("W")))+"<br>");
       //定位到“W”,然后从此位置开始算,“o”出现的位置,就不用数从第几个数开始
       document.write(mystr.indexOf("o",mystr.indexOf("o")+1)+"<br>");
       //mystr.indexOf("0")位置就是在4;那么mystr.indexOf("0")+1就是5,从位置5开始找“o”,就是避开了第一个“o”的位置
       document.write(mystr.indexOf("o")+","+mystr.indexOf("o",mystr.indexOf("o")+1)+"<br>");
       //输出两个“o”出现的位置
      
    </script>


  • 慕粉木粉
    2016-08-29 17:42:30

    因为JS里都是从零开始计数,+1代表从第一个o开始计算第二个o的位置,也可以加2,得到的结果也是7,也可以加3,得到也是7,但是加4就是负1了。所以我的理解就是这样:+1代表从第一个o开始计算第二个o的位置。

    我也小白

  • qq_阳光斜影_03450181
    2016-06-07 00:35:25

    这个你看一分开写就比较好看了。

    var num = mystr.indexOf('o'); //查找第一个'o'出现的位置。

    mystr.indexOf('o')+1;    //就是从第一个'o'出现的后一个位置。

    如果不加1那么一直查找的都是第一个'o'的位置。

  • 慕粉1184261
    2016-05-05 23:08:45

    mystr.indexOf("o")+1表示从第一个o的下个位置开始检索

  • 绿色风
    2016-05-02 22:13:20

    因为数的起点是从0 开始,不是从1

    0和1 那个是起点要明白。容易混的东西。

  • 做个好汉子
    2016-04-19 13:13:14

    indexOf(a,b)的a表示查找的字段,b表示从哪开始。返回值是查到的第一个的位置。如字段如mystr=“abcab”,mystr.indexOf("b"),返回值是1(表示在第二个字符)如果此时mystr.indexOf("b",mystr.indexOf("b")),则是mystr.indexOf("b",1),得到的还是第一个“b”。+1才能从b的下个字符开始查,才能得到第2个“b”的位置。要点赞哦


  • xiaoxiaohuahua
    2016-04-19 11:46:49

    因为这个范围是[),前开后闭的,如果不加一,实际就是 为空