使用递归计算给定数组元素的总和

计算给定数组 arr 中所有元素的总和,转载自CSDN博客网

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("+"));
  };
 
posted @ 2018-01-17 16:08  牵着猫逃跑  阅读(1082)  评论(0编辑  收藏  举报