我有一些随机化为变量的值。 现在我想为彼此添加每个值以获得总和,但循环不会将它们添加到一起。
索引变量在我控制台登录时有效。但不是当前值和索引值的总和。 有什么提示吗?
这是循环 // 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);
答案 0 :(得分:2)
我假设你引用index[x]
index
是一个数组。如果是这样,您将错误的值分配给indexValue
。试试这个:
var indexValue = index.length;
这样做是将数组的长度分配给变量indexValue
。现在for
循环将从0运行到n,其中n是数组的长度。
这可以为您提供所需的价值。
希望这有帮助。
修改强>
下面是我用你的例子创建的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);
上面的代码是您发布的内容的修改版本。当前值不是必需的,已被删除。在这种情况下,我创建了一个数组并将值存储在索引中。计算长度,并将值加在一起。
为了便于测试,我将console.log(totalSum);
更改为alert(totalSum);
。它将产生相同的值。
只是关于console.log
的参考说明。某些浏览器(主要是IE)如果没有页面刷新而没有自动将调试器附加到进程,则会出现错误,因为console
将为undefined
。这是一个快速解决方案:
if(window.console && window.console.log) {
console.log(totalSum);
}
这将检查(a)控制台对象是否附加到全局窗口对象,以及(b)控制台的日志对象是否附加到控制台对象。
答案 1 :(得分:0)
var sum = 0;
for (var i=0; i < index.length; i++) {
sum += index[i];
}
console.log(sum);