JS 数组求和的5种方法(解题报告)
转自牛客网。
题目:
题目描述
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
输入例子:
sum([ 1, 2, 3, 4 ])
输出例子:
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( “+” )); }; |
还没有评论,来说两句吧...