Javascript 素因子计算器JS-Can';无法找到无限循环
所以我试着回顾我解决问题的能力,想重做我的主要因素计算器。代码重构,更高效,等等,因为我是JS的初学者 在重新创建它的过程中,我遇到了一个相当大的问题——无限循环。现在,我已经将我的函数分解为不同的部分,并分别调用它们——它们工作得很好。只要数字小于等于10,主函数本身就可以正常工作。但出于某种原因,每当我调用参数大于10的函数时,就会有一个无限循环 如果答案显而易见,我很抱歉,现在已经很晚了。我就是看不出来 简单代码如下:Javascript 素因子计算器JS-Can';无法找到无限循环,javascript,math,Javascript,Math,所以我试着回顾我解决问题的能力,想重做我的主要因素计算器。代码重构,更高效,等等,因为我是JS的初学者 在重新创建它的过程中,我遇到了一个相当大的问题——无限循环。现在,我已经将我的函数分解为不同的部分,并分别调用它们——它们工作得很好。只要数字小于等于10,主函数本身就可以正常工作。但出于某种原因,每当我调用参数大于10的函数时,就会有一个无限循环 如果答案显而易见,我很抱歉,现在已经很晚了。我就是看不出来 简单代码如下: var findPrimeFactors = function (nu
var findPrimeFactors = function (number) {
var isPrime = function (number) {
var primes = [];
for (i = 2; i < number; i++) {
if (number % i === 0) {
return false;
}
}
primes.push(number);
return primes;
};
var findFactors = function (number) {
var factors = [];
for (i = 2; i < number; i++) {
if (number % i === 0) {
factors.push(i);
}
}
return factors;
};
var factors = findFactors(number);
var primes = [];
for (i = 0; i < factors.length; i++) {
primes += isPrime(factors[i]);
}
return primes;
};
console.log(findPrimeFactors(10));
var findPrimeFactors=函数(编号){
var isPrime=函数(数字){
var素数=[];
对于(i=2;i
这里是代码的提琴:
var findPrimeFactors = function (number) {
var isPrime = function (number) {
var primes = [];
for (i = 2; i < number; i++) {
if (number % i === 0) {
return false;
}
}
primes.push(number);
return primes;
};
var findFactors = function (number) {
var factors = [];
for (i = 2; i < number; i++) {
if (number % i === 0) {
factors.push(i);
}
}
return factors;
};
var factors = findFactors(number);
var primes = [];
for (i = 0; i < factors.length; i++) {
primes += isPrime(factors[i]);
}
return primes;
};
console.log(findPrimeFactors(10));
谢谢大家 很可能您遇到了这个问题,因为在每个函数中您没有声明
i
,所以它从全局范围使用它。我发现了几个bug