如何在JavaScript中编写带有reduce和range的阶乘函数?
我们需要编写一个JavaScript阶乘函数,该函数需要另一个辅助函数range()
。
范围功能应准备一个从1到输入数字的数字范围。然后,主函数应在范围数组上运行Array.prototype.reduce()函数以计算阶乘
示例
为此的代码将是-
const range = (start, end) => { const acc = []; for (var i = start; i < end; i++) { acc.push(i); }; return acc; } const factorial = n => { let factors = range(1, Math.abs(n)+1); let res = factors.reduce((acc,val) => { return acc * val; }, 1); if(n < 0){ res *= -1; }; return res; }; console.log(factorial(5));
输出结果
控制台中的输出将是-
120