题目描述:
计算给定数组 arr 中所有元素的总和
输入描述:
代码语言:javascript复制数组中的元素均为 Number 类型
输入样例:
代码语言:javascript复制[ 1, 2, 3, 4 ]
输出样例:
代码语言:javascript复制10
源代码:
(来源作者:牛客网O.z.)
不考虑算法复杂度,用递归来实现:
代码语言:javascript复制function sum(arr) {
var len = arr.length;
if(len == 0) {
return 0;
}
else if (len == 1) {
return arr[0];
}
else {
return arr[0] sum(arr.slice(1));
}
}
常规循环:
代码语言:javascript复制function sum(arr) {
var s = 0;
for (var i=arr.length-1; i>=0; i--) {
s = arr[i];
}
return s;
}
函数式编程 map-reduce:
代码语言:javascript复制function sum(arr) {
return arr.reduce(function(prev, curr, idx, arr) {
return prev curr;
});
}
forEach遍历:
代码语言:javascript复制function sum(arr) {
var s = 0;
arr.forEach(function(val, idx, arr) {
s = val;
}, 0);
return s;
};
eval:
代码语言:javascript复制function sum(arr) {
return eval(arr.join(" "));
};