繁体   English   中英

如何使该数组方程式起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM