关于js中for循环的疑问

预期功能:实现抽奖。不同的奖项在不同的范围产生。getLuckers()函数产生抽奖号码,产生奖项的范围、个数作参数。问题是第二次调用getLuckers()函数时,貌似死循环了...
代码如下,希望大家不吝赐教.
[code="js"]
Array.prototype.indexOf=function(substr,start){
var ta,rt,d='\0';
if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}
var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
if(t==-1)return -1;rt+=str.slice(0,t).replace(/[^\0]/g,'').length;
return rt;
}
function GoodLuck()
{
var str1="1-5";//
var str2="6-24";

var luckers=new Array();
var luckers1=new Array();

luckers=getLuckers(str1,2);
alert(luckers);
luckers1=getLuckers(str2,3);
alert(luckers1);

}
function getLuckers(str,count)
{

var flag=0;
var begin=0;
var start=0;
var end=0;
var range=new Array();
flag=str.indexOf("-");
if(flag==-1)
{
    range=str.split(",");
}else
{
    start=begin=str.substr(0,flag);
    end=str.substr(flag+1);
    alert(begin);
    alert(end);
    for(;begin<=end;begin++)
    {
        range.push(begin);
    }       
}

var luckers=new Array();
var v=end-start+1; 
if(v>1)
{
    for(var i=0,j=0;j<count;i++)
    {
        var temp=parseInt(Math.random()*(v+1)+start) ;
        if(-1!=range.indexOf(temp))
        {
            var index=range.indexOf(temp);
            range.splice(index, 1);
            luckers.push(temp);
            j++;
        }

    }

}else
{
    for(var i=0,j=0;j<count;i++)
    {
        var temp=parseInt(Math.random()*185+1) 

        if(-1!=range.indexOf(temp))
        {
            var index=range.indexOf(temp);
            range.splice(index, 1);
            luckers.push(temp);
            j++;
        }

    }
} 

return luckers;

}
[/code]

第39行有错

start=begin=str.substr(0,flag);

end=str.substr(flag+1);

alert(begin);

alert(end);

for(;begin<=end;begin++)

{

range.push(begin);

}

当begin=6时,end=24时,由于两者都是字符串,导致6 > 24
所以在这之前需要进行类型转换

你可以调试啊,js也是可以调试的。debug一下打个断点,神马都出来了。