数组求和
计算给定数组 arr 中所有元素的总和
输入描述:
数组中的元素均为 Number 类型
示例1
输入
[ 1, 2, 3, 4 ]
输出
10
- way1: forEach(callback(currentValue,index,array),thisArg);
/**
* 数组求和
* thisArg:为forEach()里面this对象的传参,可选传值;
*/
function sum(arr) {
let s = 0;
arr.forEach(function(val, idx, arr) {
s += val;
}, this);
return s;
};
运行时间:1274ms
占用内存:77796k
-
way:2:for循环
/** * 数组求和 */ function sum(arr) { let result=0 for(let item of arr){ result+=item; } return result; }
运行时间:1406ms
占用内存:78000k
- way3:reduce(accumulator,currentValue,currentIndex,sourceArray);
function sum(arr) {
return arr.reduce((accumulator,currentValue,currentIndex,sourceArray)=>{
return accumulator+currentValue;
});
};
运行时间:1434 ms
占用内存:77884K
通过以上解法:最优解为Array.forEach(function(currentValue,currentIndex,sourceArray),thisArg);