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

此生再无相见时 提交于 2019-12-02 06:31:56

计算给定数组 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("+"));
  };
 

转载于:https://www.cnblogs.com/gongjing93/p/8303465.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!