1.数组的求和 : 设置一个变量默认值
function sum(arr) {
var sum = 0; // 设置默认值
for(var i=0; i < arr.length; i++) {
sum += arr[i]; // 循环相加
}
return sum // 返回总数
}
2.递归的方法
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));
}
}
3.强大的eval(会产生eval注入,将任意的代码解析为js代码执行)
function sum(arr) {
return eval(arr.join("+"));
};
4.reduce累加器
var sum2 = function(arr) {
return arr.reduce(function(prev, curr, index, arr) {
return prev + curr;
});
};
//
previousValue(上一次调用回调函数时的返回值,或者初始值)
currentValue(当前正在处理的数组元素)
currentIndex(当前正在处理的数组元素下标)
array(调用reduce()方法的数组)