我的代码是个死循环。。
用js统计子串在母串中出现的次数,这段代码一运行起来就非常卡,为何?
<script type="text/javascript">var a="a";
var b="dsasdas";
var count=0;
var position=0;
while(b.indexOf(a,position)!=-1){
count++;
position=b.indexOf(a); // 这步是不变化的,因为b和a的值固定,于是每次b.indexOf(a,position)都不会等于-1,所以一直循环。
}
alert(count);
</script>
经过修改的代码:
var a="a";
var b="dsasdas";
var count=0;
var position=0;
while(b.indexOf(a,position)!=-1){
count++;
position = b.indexOf(a,position)+1; // 要将position写进来,同时要加1,否则会再次匹配到的第一个a。。。
}
alert(count);