找出主要因素时获得不确定的结果

时间:2019-06-13 02:05:03

标签: javascript arrays recursion prime-factoring

所以我正在编写一个简单的代码来查找数字的所有素因,我可以使用for循环来完成此操作,但是我尝试了这种方法,因此如果有人可以帮助我解决未定义的输出。我尝试使用for循环,但仍有效,但是使用此方法时,我不确定。

let arr1=[]; 
let recursion={
    primeFactorize:(num,n=2)=>
    {
        if(num%n==0 && n<=num)
        {
            arr1.push(n);
            num/=n;
            recursion.primeFactorize(num,n+=1);
        }
        else if(n>num){
            return arr1;
        }
        else{
            recursion.primeFactorize(num,n+=1);
        }
    }
};
console.log(recursion.primeFactorize(35));

期望的结果是数组,但我得到的是不确定的。

2 个答案:

答案 0 :(得分:1)

该函数不返回任何内容,它只是构建数组。尝试改为记录阵列。

let arr1=[]; 
let recursion={
    primeFactorize:(num,n=2)=>
    {
        if(num%n==0 && n<=num)
        {
            arr1.push(n);
            num/=n;
            recursion.primeFactorize(num,n+=1);
        }
        else if(n>num){
            return arr1;
        }
        else{
            recursion.primeFactorize(num,n+=1);
        }
    }
};

recursion.primeFactorize(35)
console.log(arr1);

答案 1 :(得分:0)

在递归情况下,您不返回任何内容。将return放在recursion.primeFactorize前面的两个地方。