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).使用遞歸spa
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).使用evalprototype
function sum(arr) { return eval(arr.join('+')); }