我想要一个接受正整数数组并返回这些整数的阶乘的函数-也许使用.map
或.reduce
方法?
例如
[2, 4, 6]
返回[2, 24, 720]
下面的代码是单个整数时可以正常工作,但是在传递数组时不返回任何内容。
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
factorial(5); // 120
答案 0 :(得分:2)
只需使用您当前的函数调用.map
:
const factorial = (n) => {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
const factorials = arr => arr.map(factorial);
console.log(factorials([2, 4, 6]));
答案 1 :(得分:0)
reduce()方法在数组的每个元素上执行reducer函数(由您提供),从而产生单个输出值。 See more
使用.map()
,您可以这样做-
function factorialize(num) {
if (num < 0)
return -1;
else if (num == 0)
return 1;
else {
return (num * factorialize(num - 1));
}
}
const numbers = [2,4,6];
const factorial = numbers.map(n => factorialize(n))
console.log(factorial)