数组求和函数
1). 首先考虑[].reduce方法,再使用for或者foreach循环相加。
function sum(arr) { if(Array.prototype.reduce) { var init = 0; return arr.reduce(function(a,b) { return a+b; }, init); } else { var total= 0; arr.forEach(function(v, k) { return total += v; }) return total; } }
2).使用递归
function sum(arr) { var len = arr.length; if(len === 0) { return 0; } else if(len === 1) { return arr[0]; } var spliceArr = arr.slice(1); // slice不会破坏原数组,返回新数组。 return arr[0]+sum(spliceArr); }
3).使用eval
function sum(arr) { return eval(arr.join('+')); }