Mext
2014-11-17 23:08
虽说可以使用
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>
把字符串转换成数组 然后遍历数组 数组的下标就是元素出现的位置~~
使用lastIndexOf()就可以解决这个问题了,用不着老嵌套
<!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(" |  "+i+"   | "+mychar[i]+"<span style='left:12px;padding-left:108px;position:absolute;border-bottom:1px solid #000;border-right:1px solid #000;width:64px;'>|</span>"+" "+(mychar[i]+1)+"<br />"); }; </script> </head> <body> </body> </html>
对奥!怎么没想到,谢谢了!split("");
这个方案我能看懂,机器看不懂···哪里不对啊!
<!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>
哪里不对,为什么一输上去就崩溃···
求解答!
突然间想到了解决问题的方法,使用for循环···不知道可不可以···
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题