用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);
}
alert(count);
  </script>

解决方案 »

  1.   

    while(b.indexOf(a,position)!=-1){
    count++;
    position=b.indexOf(a); //这里每次的结果都是相同的
    }
    你这已经死循环了。结果也是错误的,只要有一处包含的位置,就无穷了。改成下面的:
    while(b.indexOf(a,position)!=-1){
    count++;
    position=b.indexOf(a,position)+1;}
      

  2.   


    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;
    //alert(position)
    }
    alert(count);