数组中所有元素的总和

时间:2015-10-18 02:22:54

标签: javascript

我想做一些例子。 我想总结数组的所有元素 这是我的代码

var marks = [10, 20, 30, 40];
var total = 0;

for (var singleMark in marks) {
    total += marks;

}
console.log("the total marks re " + total);

但显示的结果是 总分为010,20,30,4010,20,30,4010,20,3010,20,30,40

请帮帮我,告诉我我在哪里做错了。谢谢。 我可以采用for循环,但我想学习使用 foreach ,如 Javascript中所说的明确指南

8 个答案:

答案 0 :(得分:4)

试试这个

var marks = [10, 20, 30, 40];
var sum=marks.reduce(function(a, b){return a+b;})

来自 @thomas 评论

ES6语法你也可以写:

[10, 20, 30, 40].reduce((a,b) => a + b)

答案 1 :(得分:4)

for in将遍历对象的属性。如果您在数组中使用in,它将返回它迭代的索引。

您应该使用forEach来迭代数组。

marks.forEach(function(element, index){
    total+=element;
});

元素值是数组中的element,而index值是forEach当前所在的索引。 index是可选的,不需要包含在内。

答案 2 :(得分:2)

  

为什么不使用常规for循环?

var marks = [10, 20, 30, 40];
var total = 0;
for (var i = 0, iLen = marks.length; i < iLen; i++) {
    total += marks[i];
}
console.log("the total marks re " + total);
  

您也可以使用reduce。 reduce()方法对累加器和数组的每个值(从左到右)应用一个函数,将其减少为单个值。

var total = [0, 1, 2, 3].reduce(function(a, b) {
  return a + b;
});
// total == 6

答案 3 :(得分:1)

不要使用for .. in进行数组遍历。 使用for(..;..;..)

这些值以这种方式表示为字符串。

供参考,更安全的方式:

for(var i = 0; i< arr.length; i++){
    sum += arr[i];
}

答案 4 :(得分:1)

you can use the following two ways

var marks = [10, 20, 30, 40];
        var total = 0;
        marks.forEach(function addNumbers(value) {
            total += value;
        });
        console.log(total);

or
var marks = [10, 20, 30, 40];
        var total = 0;
        var singleMark;
        for (var i = 0; i < marks.length;i++) {
            total = total + marks[i];

        }
        console.log("the total marks re " + total);

答案 5 :(得分:1)

这是一种更高阶和可读的方法:

    marks.reduce(Math.sum, 0);

reduce 函数与Math.sum一起使用并执行此操作:foreach元素标记,使用math.sum(cur, marks[i]);获取当前元素和下一个元素;这样做,直到数组中的所有元素都传递给sum函数并且已经像这样添加了。希望这会有所帮助。

答案 6 :(得分:0)

您只是在循环中使用了错误的变量marks而不是singleMark。试试这个:

for (var singleMark in marks) {
    total += marks[singleMark];
}

编辑:但是使用in迭代数组是不好的做法。考虑使用.reduce().forEach()

等javascript Array.prototype函数

答案 7 :(得分:0)

很容易。

使用参数创建一个函数。

在函数循环中通过数组直到循环结束。

在循环内添加元素。

function sumArray(arra){

    var sum=0;
    for (var i = 0; i <arra.length; i++) {
        sum= sum+arra[i];
    }
}
相关问题