Это небольшое расширение кода, который CertainPerformance написал здесь: произведение последовательности (факториал) javascript
Этот следующий код (см. Фрагмент) вычисляет последовательные продукты и отслеживает кумулятивных сумм для 2 значений переменной b, но если бы я добавил дополнительные числа в массив var b и добавил бы больше cumsum (например, cumsum2 , , он стал бы достаточно длинным) cumsum3 , ..) и nHourCum (например, nHourCum2 , nHourCum3, ..)
Я хочу написать const cumsum и const nHourCum как массивы. Идея состоит в том, чтобы избежать добавления cumsum1, cumsum 2 . Я попытался написать:
const cumsum = [cumsum0 + b[0] * nHour, cumsum0 + b[1] * nHour];
и аналогично для nHourCum:
const nHourCum = [cumsum[0] + nHour, cumsum[1] + nHour]
вместо
const cumsum = cumsum0 + b[0] * nHour;
const cumsum1 = cumsum0 + b[1] * nHour;
const nHourCum = cumsum + nHour;
const nHourCum1 = cumsum1 + nHour;
, но этот метод, похоже, не работает.
Что я сделал не так с массивами const?
var a = document.getElementById("a");
var b = [1000000, 2000000];
let time0 = 1;
let cumsum0 = 0;
for (var n = 2; n <= 96; n++) {
const nHour = time0 * (959 - 10*n)/(960 - 10*n)
const cumsum = cumsum0 + b[0] * nHour;
const cumsum1 = cumsum0 + b[1] * nHour;
const nHourCum = cumsum + nHour;
const nHourCum1 = cumsum1 + nHour;
if (n==2)
{a.innerHTML += 'Hour ' + n + ': ' + b[0] * nHour + ' -- ' + (b[0] + b[0] * nHour) + ' ---- ' + b[1] * nHour + ' -- ' + (b[1] + b[1] * nHour) +'<br>';}
else
{a.innerHTML += 'Hour ' + n + ': ' + b[0] * nHour + ' -- ' + (b[0] + nHourCum) + ' ---- ' + b[1] * nHour + ' -- ' + (b[1] + nHourCum1) +'<br>';}
time0 = nHour;
cumsum0 = cumsum;
}
<body>
<p id="a"></p>
</body>