【发布时间】:2020-03-06 22:21:53
【问题描述】:
这是CertainPerformance在此处编写的代码的略微扩展:product of a sequence (factorial) javascript
以下代码(参见 sn-p)计算连续乘积并跟踪 var b 的 2 个值的累积和,但如果我要在 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>
【问题讨论】:
-
您的代码中没有数组(
b除外)。 -
标题毫无意义。
const是变量声明的一部分,它表示不能重新声明或重新分配。const i = 0;是有效的,并声明了一个变量i,即数字 0。你如何“将其更改为数组”?
标签: javascript arrays constants