我正在创建一个网页,它将找到一个数字的素数分解。我使用的函数从循环中调用自身。在我自己执行函数后,循环的索引从第二次调用时到达的索引更改。它应该返回数组中的所有素数。这是代码。
function pf(num){
max=Math.floor(Math.sqrt(number));
factors=[];
prime=true;
for(count=2;count<=max;count++){
ratio=num/count;
if(ratio%1==0){
alert(count);//HERE
factors=pf(ratio);
alert(count);//HERE
factors.push(count);
prime=false;
break;
}
}
if(prime){
factors.push(num);
}
return factors;
}
假设这段代码以输入 20 运行。第一个警报将显示数字 2,但下一个警报将显示 3。有没有办法使循环的当前索引不因函数的第二次调用而改变?