自己写的答案......感觉自己搞复杂了

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

如梦亦晨

2018-07-17 15:28

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>string对象 </title>
<script type="text/javascript">
var mystr="jkjasdjao jkjkjko jkdasjo kjaksjdjooo";
var count=0;
for (var i=0;i<mystr.length;i++){
if(mystr.indexOf("o",i)!=-1){
count++;
document.write("赋值前i的值为:"+i+"<br/>");
i=mystr.indexOf("o",i)+1;
document.write("赋值后i的值为:"+i+"<br/>");
if (count==2){
break;
}
}
}
document.write("字符串中的第"+count+"次字符o的位置是"+mystr.indexOf("o",i-1));
</script>
</head>
<body>
</body>
</html>

每次总是写一堆代码,一看别人几行就搞定了,感觉自己不是这块料。。。o(╯□╰)o

写回答 关注

7回答

  • RealOsan
    2018-07-28 15:30:04

    <!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 Worldooooooooooooooooooooooooooo!"//29个o,n改成30越界成-1

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

      

      document.write("<br>");

      //查找第几个改变n

      var n = 12;

      var count = 1;

      var a = 0;

      while(count<=n)

      {

          a = parseInt(mystr.indexOf("o",a+1));

          count++;

      }

      document.write(a);

      

    </script>

    </head>

    <body>

    </body>

    </html>



  • RealOsan
    2018-07-28 15:27:42

    var n = 12;

      var count = 1;

      var a = 0;

      while(count<=n)

      {

          a = parseInt(mystr.indexOf("o",a+1));

          count++;

      }

      document.write(a);


  • RealOsan
    2018-07-28 15:26:40

    count的值是错的吧,i的循环是基于str.length的,i++一次,count也会+一次

  • 慕先生5247145
    2018-07-27 18:32:02
    for语句中的i++和执行语句中i=mystr.indexOf("o",i)+1;重复了,这会导致第count=4之后结果错误。<br />
    你的代码我感觉还是挺有趣的,也思考了一下,就修改成了可以显示前n次出现指定字符串的位置了,欢迎指正~代码如下(ex:前5次出现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="jkjasdjao jkjkjko jkdasjo kjaksjdjooo";
    var count=0;
    for (var i=0;i<mystr.length;i++){
    if(mystr.indexOf("o",i)!=-1){
    count++;
    document.write("字符串中的第"+count+"次字符o的位置是"+mystr.indexOf("o",i)+"<br />");
    i=mystr.indexOf("o",i);
    if (count>=5){
    break;
    }
    }
    }
    </script>
    </head>
    <body>
    </body>
    </html>


  • Ethtool
    2018-07-25 21:06:40

    是不是可以不要for语句中的i++呢?

  • Ethtool
    2018-07-25 20:56:50

    你是高手,请多多指教!你这写法是对的,真心感觉你思考周密!

  • 慕神4075375
    2018-07-17 15:58:27

    能写出来就很不错了 慢慢来嘛!加油


JavaScript进阶篇

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

467393 学习 · 21877 问题

查看课程

相似问题