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

如果要找第三或者第八个O,那么该怎么办呢?

虽说可以使用

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

来找到第二个出现o的位置,

可是如果要让你找第三第四甚至还要往后的o出现的位置,那该怎么办呢?

总不能无线嵌套下去吧!

求大神支支招~


出个题,请找出mystr中每个o出现的位置。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
<script type="text/javascript">
  var mystr="Hello World! World! World! World! World!"
  document.write(mystr.indexOf("o",mystr.indexOf("o")+1));
</script>
</head>
<body>
</body>
</html>

提问者:Mext 2014-11-17 23:08

个回答

  • 耳鼻不乖
    2014-11-18 09:47:48
    已采纳

    把字符串转换成数组  然后遍历数组  数组的下标就是元素出现的位置~~

  • 流云行者
    2015-03-28 12:20:43

    使用lastIndexOf()就可以解决这个问题了,用不着老嵌套

  • Venfiw
    2014-11-30 17:08:59

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>string对象 </title>
    <script type="text/javascript">
      var mystr="Hello World! World! World! World! World!";
      var mychar=new Array(0);
      document.write("<div style='border:1px solid #000;width:160px;padding-left:11px;margin-left:4px;position:relative'>序号 | char | 位置</div>");
      for (var i = 1; i < mystr.length; i++) {
      	mychar[i]=mystr.indexOf("o",mychar[i-1]+1);
      	if (mychar[i]<0) {
      		break;
      	}
      	document.write(" | &nbsp"+i+" &nbsp | "+mychar[i]+"<span style='left:12px;padding-left:108px;position:absolute;border-bottom:1px solid #000;border-right:1px solid #000;width:64px;'>|</span>"+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+(mychar[i]+1)+"<br />");
      };
    </script>
    </head>
    <body>
    </body>
    </html>


  • Mext
    2014-11-18 20:50:22

    对奥!怎么没想到,谢谢了!split("");

  • Mext
    2014-11-18 00:27:59

    这个方案我能看懂,机器看不懂···哪里不对啊!


    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>string对象 </title>
    <script type="text/javascript">
      var mystr="Hello World! World! World! World!";

      //让普通人更好理解字母位置所在
      var num = mystr.indexOf("o")+1;

      //先输出一次字母所在的位置
      document.write("字母o的位置是:" + num);
     

     //开始输出第二个字母O所出现的位置,依次循环···
      for(num;num<mystr.length;num++){
        if(num > 0){
        num = mystr.indexOf("o",num);
        document.write("字母o的位置是:" + num);
       }else{
        document.write("没有找到字母o的位置!");
       }
      }
    </script>
    </head>
    <body>
    </body>
    </html>


    哪里不对,为什么一输上去就崩溃···

    求解答!

  • Mext
    2014-11-17 23:11:57

    突然间想到了解决问题的方法,使用for循环···不知道可不可以···