函数为input number*提供数组长度,而不是input number*数组值(javascript)
如果我使用数字5作为输入,我希望我的函数返回5*4*3*2*1。 问题是my for each循环返回5*5,这意味着输入乘以数组的长度,而不是输入乘以数组的值,它应该是4,3,2,1函数为input number*提供数组长度,而不是input number*数组值(javascript),javascript,Javascript,如果我使用数字5作为输入,我希望我的函数返回5*4*3*2*1。 问题是my for each循环返回5*5,这意味着输入乘以数组的长度,而不是输入乘以数组的值,它应该是4,3,2,1 function FirstFactorial(num) { var a = 1; var numbers = new Array(); for (var i = 0; i < num; i++){ numbers[i] = a; a++; } for (integer in numbe
function FirstFactorial(num) {
var a = 1;
var numbers = new Array();
for (var i = 0; i < num; i++){
numbers[i] = a;
a++;
}
for (integer in numbers){
factor = num * numbers[integer];
}
return factor;
}
FirstFactorial(5);
//EXPECTED OUTPUT: 5*4*3*2*1 = 120
那样做
function FirstFactorial(num){
var result = 1;
while(num > 0){
result = num*result;
num--;
}
return result;
}
将每个数字乘以函数参数,并在每次迭代中覆盖因子。您可能想在循环之前声明var factor=1,然后在循环内部声明do factor*=numbers[integer]以获得乐趣,ES6方法还使用了一个数组:function factn{return[…Arrayn.keys].reducep,c=>p*c+1,1}这没有给我任何输出。@ApoLLoSkiLLz这段代码对我来说似乎很好。你有什么错误吗?如果有的话,请把它们寄出去。哎呀!我忘了调用我的函数。你的代码工作得很完美。