计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
输入例子:
sum([1, 2, 3, 4])
输出例子:
10
1, 不考虑算法复杂度, 用递归做:
- 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));
- }
- }
2, 常规循环
- function sum(arr) {
- var s = 0;
- for (var i=arr.length-1; i>=0; i--) {
- s += arr[i];
- }
- return s;
- }
3, 函数式编程 map-reduce
- function sum(arr) {
- return arr.reduce(function(prev, curr, idx, arr){
- return prev + curr;
- });
- }
4,forEach 遍历:
- function sum(arr) {
- var s = 0;
- arr.forEach(function(val, idx, arr) {
- s += val;
- }, 0);
- return s;
- };
- 5,eval:
- function sum(arr) {
- return eval(arr.join("+"));
- };
来源: http://www.bubuko.com/infodetail-2585686.html