Javascript 我怎样才能使这个数组方程起作用?

Javascript 我怎样才能使这个数组方程起作用?,javascript,nan,Javascript,Nan,我编写了一些JavaScript代码,用于计算用户输入的多个值的线性片段。下面是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.ge

我编写了一些JavaScript代码,用于计算用户输入的多个值的线性片段。下面是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;
    }
}
var totalinealfootage=0;

对于(var i=0;i我假设您对
i
的重用使您的循环陷入困境。在循环结束时,当
for
处理
i
时,它可能已经完全改变了值


If
var i=(+document.getElementById('If'+i.value))/12、 
i
设置为大于24的某个值,由于
i的原因,循环将在下一次迭代开始时终止。我假设您对
i
的重用正在绊倒您的循环。在循环结束时,当
for
处理
i
时,它可能已经完全改变了值

如果
var i=(+document.getElementById('If'+i).value)/12;
i
设置为大于24的某个值,由于
i标记,循环将在下一次迭代开始时终止:

<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);
}
var TotalinealFootage=0,i,p,f,j; 对于(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; 总票数+=((f+j)*p); 控制台日志(总页数); }
这对我来说很有效。比如@T.J Crowder说,你需要确保你使用的是输入,并且你有从0到24的所有输入。另外,我在循环内更改了变量I,因为这很混乱,因为你用它来控制循环计数,并将变量移到循环外,这样就不会重新定义每个过程

编辑:也可以看到第一个答案。我确实认为是var I在循环中被重新定义。

标记:

<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);
}
var TotalinealFootage=0,i,p,f,j; 对于(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; 总票数+=((f+j)*p); 控制台日志(总页数); }
这对我来说很有效。比如@T.J Crowder说,你需要确保你使用的是输入,并且你有从0到24的所有输入。另外,我在循环内更改了变量I,因为这很混乱,因为你用它来控制循环计数,并将变量移到循环外,这样就不会重新定义每个过程


编辑:也可以看到第一个答案。我确实认为这是循环中重新定义的变量I。

相对于页面的其余部分,它在哪里?如果它只是在脚本标记的顶部,您可能需要将其移动到底部,或者等到页面加载后再执行它。这看起来很好,前提是:1.有问题的元素是<代码>输入
元素。2.它们确实具有
id
属性,如
“pf0”
“pf1”
,等等。3.访问元素的代码在元素已经存在之前不会运行(这似乎是因为您可能是响应单击或其他操作而运行此代码,但是…)。(另外,JavaScript没有块作用域,因此这些变量实际上处于函数级别,但在上面是无害的。)i已经被定义为循环变量,用于在loop@Loris:这是一个答案(而且:好眼力!),不是评论。:-)@Pinkparter字符串到数字强制:这与页面的其余部分有关吗?如果它在脚本标记中位于顶部,则可能需要将其移动到底部或等待页面加载后再执行。这看起来很好,前提是:1.所讨论的元素是
input
元素。2.它们确实具有
id
属性,如
“pf0”
“pf1”
,等等。3.访问元素的代码在元素已经存在之前不会运行(这可能是因为您可能是响应单击或其他操作而运行此代码,但是…)。(另外,JavaScript没有块作用域,因此这些变量实际上处于函数级别,但在上面是无害的。)i已经被定义为循环变量,用于在loop@Loris:这是一个答案(而且:好眼力!),不是评论。:-)@pinkparter字符串到数字强制:这会给你一个不正确的结果。
是一个字符串。因此,如果
f
“1”
j
“2”
,那么
(f+j)
“12”
!如果你在上面使用
*
,它就会变成一个数字(
12
)哈,很好的回答。只要把p和f除以1。编辑:希望我能看到它们的标记是什么样子。@Reece:大约有50个字母表示它们是数字。最流行的一个是OP的问题:
+
这会给你一个不正确的结果。
是一个字符串。如果
f
“1”
j
“2”
,然后
(f+j)
“12”
!如果你在上面使用
*
,它会变成一个数字(
12
),然后事情就从这里开始了。哈,很好的回答。只要把p和f除以1。编辑:希望我能看到它们的标记是什么样子。@Reece:大约有50个单词可以让它们成为数字。最受欢迎的一个是OP的问题:
+
谢谢,我刚刚把I改成了x,效果很好。真不敢相信我没有回答这个问题,谢谢。谢谢。我刚把I改成x,效果很好。真不敢相信我没听懂,谢谢。