计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
示例1
输入
[ 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( "+" )); }; |
转载于:https://www.cnblogs.com/strawqqhat/p/10602164.html