Javascript For循环重复第一次迭代两次

Javascript For循环重复第一次迭代两次,javascript,html,for-loop,sum,Javascript,Html,For Loop,Sum,我对javascript for循环有问题。我将数组的元素相加,但由于某种原因,我的循环在第一个条目中添加了两次!以前这里也有类似的话题(http://stackoverflow.com/questions/3121670/for-loop-repeats-first-loop-twice)但作者并没有详细说明他的决议,只是说他做了一些“愚蠢的事情”。有谁能告诉我我在干什么吗,笨蛋 for(j=0;j<ARRAY.length;j++) {TOTAL += ARRAY[j];} for(

我对javascript for循环有问题。我将数组的元素相加,但由于某种原因,我的循环在第一个条目中添加了两次!以前这里也有类似的话题(http://stackoverflow.com/questions/3121670/for-loop-repeats-first-loop-twice)但作者并没有详细说明他的决议,只是说他做了一些“愚蠢的事情”。有谁能告诉我我在干什么吗,笨蛋

for(j=0;j<ARRAY.length;j++)
{TOTAL += ARRAY[j];}

for(j=0;j请确保使用变量声明

还有一点不错的提示调试

for(var j=0; j < ARRAY.length; j++) {
{
    TOTAL += ARRAY[j];
    //alert("The count of J is now " + j);
}
for(var j=0;j
确保使用变量进行声明

还有一点不错的提示调试

for(var j=0; j < ARRAY.length; j++) {
{
    TOTAL += ARRAY[j];
    //alert("The count of J is now " + j);
}
for(var j=0;j

var合计=0;
对于(var j=0,;j

MDN建议使用变量保存数组长度。此外,请使用检查脚本。


var合计=0;
对于(var j=0,;j


MDN建议使用一个变量来保持数组长度。此外,请检查脚本。

感谢您的帮助。由于我最初的方法遇到了死胡同,我研究了使用函数来实现此技巧。以下方法有效:

Array.prototype.sum = function() {
for (var j = 0, L = this.length, sum = 0; j < L; sum += this[j++]);
return sum;
}
Array.prototype.sum=function(){
对于(var j=0,L=this.length,sum=0;j
然后在创建html表时调用ARRAY.sum()


感谢您的帮助,我在

上找到了上述解决方案。由于我最初的方法遇到了死胡同,我研究了如何使用函数来实现该技巧。以下方法有效:

Array.prototype.sum = function() {
for (var j = 0, L = this.length, sum = 0; j < L; sum += this[j++]);
return sum;
}
Array.prototype.sum=function(){
对于(var j=0,L=this.length,sum=0;j
然后在创建html表时调用ARRAY.sum()


我在

上找到了上面的解决方案,在这种情况下应该没有什么区别,但是你应该确保“j”是用
var
声明的。你的循环肯定不会重复第一次迭代。@Karl Major:还要检查你之前的一些问题,并接受对你有帮助的答案
ARRAY
中的前两个条目相同吗?@Jack Maney-是的。@Pointy-添加var不能解决我的问题,我已经尝试过了,因此我完全困惑了。在这种情况下,这不会有任何区别,但你应该确保“j”是用
var
声明的。你的循环肯定不会重复第一次迭代。@Karl Major:还要检查你之前的一些问题,并接受对你有帮助的答案
ARRAY
中的前两个条目相同吗?@Jack Maney-是的。@Pointy-添加var不能解决我的问题,我已经尝试过了,因此,我完全感到困惑。感谢调试提示@Graeme,但不幸的是添加var并不能解决我的问题。我开始失去希望。目前,我已声明一个新变量等于TOTAL-ARRAY[0]这给出了正确的数字,但这显然非常混乱。感谢调试提示@Graeme,但不幸的是添加var并不能解决我的问题。我开始失去希望。目前我已声明一个新变量等于TOTAL-ARRAY[0]这给出了正确的数字,但这显然是非常混乱的。感谢您的回复@Bakudan,但不幸的是,这呈现出与以前相同的结果!我不知道发生了什么事。也感谢JSLint,我以前从未听说过这一点。在这种情况下,虽然它只是指出了我代码中的一些格式错误,并且没有为我的错误提供任何补救措施y问题。@KarlMajor您提供的代码片段太小,找不到任何其他内容。感谢您的回复@Bakudan,但不幸的是,这与以前的结果相同!我不知道发生了什么事。也感谢JSLint,我以前从未听说过这一点。在这种情况下,虽然它只是指出了我代码中的一些格式错误并生成了d我的问题没有解决办法。@KarlMajor您提供的代码片段太小,找不到其他任何东西。