如梦亦晨
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进阶篇
469242 学习 · 22584 问题
相似问题