Javascript 反向因子

Javascript 反向因子,javascript,arrays,loops,reduce,Javascript,Arrays,Loops,Reduce,我在创建一个函数时遇到了一个问题,该函数接受任何数字并返回它是其阶乘的数字。 我试着用我知道的基本方法来做这件事。我刚刚开始学习:D 例子 120将返回“5!” 24将返回“4!” 150将返回“无” 函数反转因子(num){ 让我们=[]; for(设i=1;i{ 如果(acc*e==num){ 返回长度为 }否则返回“无” } 是。减少(多,1); }; log(reverseFactorial())您可以通过使用单个循环来简化方法,如果乘积等于所需的值,则返回值 如果没有,则继续,直

我在创建一个函数时遇到了一个问题,该函数接受任何数字并返回它是其阶乘的数字。 我试着用我知道的基本方法来做这件事。我刚刚开始学习:D

例子

  • 120将返回“5!”
  • 24将返回“4!”
  • 150将返回“无”
函数反转因子(num){
让我们=[];
for(设i=1;i{
如果(acc*e==num){
返回长度为
}否则返回“无”
}
是。减少(多,1);
};

log(reverseFactorial())
您可以通过使用单个循环来简化方法,如果乘积等于所需的值,则返回值

如果没有,则继续,直到找到或大于所需的值

如果未找到值,请在函数末尾返回
'None'

函数反转因子(num){
设乘积=1,
n=1;

while(product
reverseFactorial
不返回任何内容;
的结果是。reduce(multi,1)
从未使用过。您没有向
reverseFactorial
传递任何参数。您很可能没有正确使用
reduce
;请阅读。@Sebastian Simon为什么?您能解释一下:)?are.reduce(multi,1)是在reverseFactorial中,所以这意味着我不能在另一个函数中使用reduce方法?当我尝试例如console.log(reverseFactorial(120))时我未定义。之所以未定义,是因为您没有从
reverseFactorial
返回任何内容。您没有正确使用
reduce
,因为您返回了
are.length
或字符串
“None”
作为下一次迭代的累加器,但将字符串相乘没有意义,而且我不确定
是否为are.length*e===num
是有意检查。只需在函数末尾添加一个return语句并返回
'None'
。请参阅下面的编辑。