JS 数组求和的5种方法(解题报告)

逃离我推掉我的手 2022-06-15 01:42 262阅读 0赞

转自牛客网。

题目:

题目描述

计算给定数组 arr 中所有元素的总和

输入描述:
  1. 数组中的元素均为 Number 类型
输入例子:
  1. sum([ 1, 2, 3, 4 ])
输出例子:
  1. 10

不考虑算法复杂度,用递归做:










1


2


3


4


5


6


7


8


9


10



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));


    }


}

常规循环:










1


2


3


4


5


6


7



function sum(arr) {


    var s = 0;


    for (var i=arr.length-1; i>=0; i—) {


        s += arr[i];


    }


    return s;


}

函数式编程 map-reduce:










1


2


3


4


5



function sum(arr) {


    return arr.reduce(function(prev, curr, idx, arr){


        return prev + curr;


    });


}

forEach遍历:










1


2


3


4


5


6


7


8



function sum(arr) {


    var s = 0;


    arr.forEach(function(val, idx, arr) {


        s += val;


    }, 0);


  


    return s;


};

eval:










1


2


3



function sum(arr) {


    return eval(arr.join(“+”));


};

发表评论

表情:
评论列表 (有 0 条评论,262人围观)

还没有评论,来说两句吧...

相关阅读

    相关 leetCode解题报告5道题(二)

    leetcode上比较简单的几道题,不想分开写几篇博文来记录哈,所以写在一起了!! 虽然几道题都比较简单,但感觉自己写得不好,希望博文如果被哪位大神看到,可以留言下写下你的做