我从不使用 NodeJS,因此在递归乘法函数中苦苦挣扎。问题似乎是在递归中,输入参数是一个数组,然后将其分配给第一个值而不是逐个值。这是代码
const multiply = (factor1, ...factors) => {
if (factors.length > 1){
return Math.round(factor1 * multiply(factors) * scale) / scale;
}
const factor2 = factors[0];
return Math.round(factor1 * factor2 * scale) / scale;
}
所以调用:multiply(1,1,1,1)
导致:
- 迭代:
factor1: 1, factors: [1,1,1]
- 迭代:
factor1: [1,1,1], factors: Array(0)
factor1: 1, factors: [1,1]
在不检查 factor1 是否为数组的情况下,如何在第二次迭代中实现?