[英]How can I get this array equation to work?
我编写了一些Javacript代码,用于计算用户输入的多个值的线性镜头。 这是Javascript代码...
var totalLinealFootage = 0;
for (var i = 0; i <= 24; ++i)
{
var p = +document.getElementById('pf' + i).value;
var f = +document.getElementById('ff' + i).value;
var i = (+document.getElementById('if' + i).value)/12;
if (!isNaN(p) && !isNaN(f) && !isNaN(i))
{
totalLinealFootage += (f+i)*p;
}
}
截至目前,无论我在输入totalLinealFootage中放置什么值,都没有值?
我假设您对i
的重用正在绊倒您的循环。 在循环结束时,当for
处理i
,它的值可能会完全更改。
如果var i = (+document.getElementById('if' + i).value)/12;
如果将i
设置为大于24的某个值,则由于i <= 24
,循环将在下一次迭代的开始处终止。
而是,为循环索引和计算中的值使用不同的变量名。
标记:
<input id="pf0" value="1" />
<input id="ff0" value="2" />
<input id="if0" value="3" />
JavaScript:
var totalLinealFootage = 0,i,p,f,j;
for (i = 0; i < 1; i+=1) {
p = document.getElementById('pf' + i).value;
f = document.getElementById('ff' + i).value;
j = (document.getElementById('if' + i).value)/12;
totalLinealFootage += ((f+j)*p);
console.log(totalLinealFootage);
}
这对我有用。 就像@TJ Crowder所说的那样,您需要确保您正在使用输入,并且那里的所有输入都在0到24之间。 另外,我更改了循环内的变量,因为这很令人困惑,因为您使用它来控制循环计数并将变量移到循环外,因此不会重新定义每次传递。
编辑:以及第一个答案。 我确实认为这是我在循环内重新定义的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.