Я никогда не использую 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 массивом?