如梦亦晨
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
<!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>
var n = 12;
var count = 1;
var a = 0;
while(count<=n)
{
a = parseInt(mystr.indexOf("o",a+1));
count++;
}
document.write(a);
count的值是错的吧,i的循环是基于str.length的,i++一次,count也会+一次
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>
是不是可以不要for语句中的i++呢?
你是高手,请多多指教!你这写法是对的,真心感觉你思考周密!
能写出来就很不错了 慢慢来嘛!加油
JavaScript进阶篇
468190 学习 · 21891 问题
相似问题