我试图做一些例子。我想对数组的所有元素求和,这是我的代码
var marks = [10, 20, 30, 40];
var total = 0;
for (var singleMark in marks) {
total += marks;
}
console.log("the total marks re " + total);
Run Code Online (Sandbox Code Playgroud)
但是显示的结果是 总计分数010,20,30,4010,20,30,4010,20,30,4010,20,30,40
请帮助我,告诉我我在哪里做错了。谢谢。我可以使用for循环,但是我想像Javascript中那样学习使用foreach,因为它是这样的明确指南
这样尝试
var marks = [10, 20, 30, 40];
var sum=marks.reduce(function(a, b){return a+b;})
Run Code Online (Sandbox Code Playgroud)
来自@thomas评论
您还可以编写ES6语法:
[10, 20, 30, 40].reduce((a,b) => a + b)
Run Code Online (Sandbox Code Playgroud)
因为 in 将检查对象的属性。如果您在数组上使用 for in ,它将返回它正在迭代的索引。
您应该forEach用于遍历数组。
marks.forEach(function(element, index){
total+=element;
});
Run Code Online (Sandbox Code Playgroud)
元素值element来自数组,而index值是 forEach 当前所在的索引。index是可选的,不需要包括在内。