题目描述
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
示例1
输入
[ 1, 2, 3, 4 ]
输出
10
1.最普通的累加
function sum(arr) {
var sum=0,l=arr.length;
for(var i=0;i<l;i++){
sum+=arr[i];
}
return sum;
}
2.forEach
function sum(arr) {
var s = 0;
arr.forEach(function(val, idx, arr) {
s += val;
}, 0);
return s;
};
3.函数式编程,reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
function sum(arr) {
return arr.reduce(function(prev, curr, idx, arr){
return prev + curr;
});
}
4.join、eval
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
function sum(arr) {
return eval(arr.join("+"));
};