0

我有一些随机分配给变量的值。现在我想将每个值相加以获得总和,但循环不会将它们加在一起。

当我控制台记录它时,索引变量起作用。但不是当前值和指数值的总和。有小费吗 ?

这是循环 // indexValue 是我从数组中获得的值//

  var indexValue = index;  // Random number from 1 - 10
    var totalSum = 0;

   for(var x = 0; x <indexValue; x++){

   var currentValue = index[x];
   totalSum += currentValue;
    }

    console.log(totalSum);
4

2 回答 2

2

我假设因为您引用index[x]index是一个数组。如果是这样,您将错误的值分配给indexValue. 试试这个:

var indexValue = index.length;

这样做是将数组的长度分配给变量indexValue。现在for循环将从 0 运行到 n,其中 n 是数组的长度。

这应该为您提供所需的值。

希望这可以帮助。

编辑:

下面是我使用您的示例创建的 jsFiddle 的链接,并解释了代码:

jsFiddle

var index = [1,2,3,4,5];  

var indexValue = index.length;  // It's imperative that this is an array
var totalSum = 0;

for(var x = 0; x <indexValue; x++){
    totalSum += index[x];
}

alert(totalSum);

上面的代码是您发布的内容的修改版本。当前值不需要并且已被删除。在这种情况下,我创建了一个数组并将值存储在 index.html 中。计算长度,并将值相加。

为了方便测试,我改成console.log(totalSum);alert(totalSum);. 它将产生相同的值。

只是一个参考说明console.log。一些浏览器(主要是 IE)在没有页面刷新的情况下不会自动将调试器附加到进程,将会出现console错误undefined。这是一个快速解决方案:

if(window.console && window.console.log) {
    console.log(totalSum);
} 

这将检查 (a) 控制台对象是否附加到全局窗口对象,以及 (b) 控制台的日志对象是否附加到控制台对象。

于 2013-02-06T17:54:00.420 回答
0

你可能想要这样的东西:

var sum = 0;
for (var i=0; i < index.length; i++) {
    sum += index[i];
}
console.log(sum);
于 2013-02-06T17:55:02.627 回答