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

为什么最后要写+1

  var mystr="Hello World!"

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


正在回答

7 回答

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


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

慕粉木粉

明白了 3Q
2016-09-18 回复 有任何疑惑可以回复我~

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

我也小白

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

慕村1994845

+1代表从第一个“o”的后一位开始检索“o”的;因为区间是[)的,如果+1是从第一个”o“开始检索,那么检索的还是第一个”o“的位置
2016-09-18 回复 有任何疑惑可以回复我~

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

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

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

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

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

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

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

慕粉木粉

我感觉+1是从o开始的检索啊,最高能加到3
2016-08-29 回复 有任何疑惑可以回复我~

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

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

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

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”的位置。要点赞哦


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

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

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

举报

0/150
提交
取消

为什么最后要写+1

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