1、reduce()方法概述
reduce方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,
这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。
1 /*
2 数组元素求和
3 */
4 var arr = [1, 2, 3, 4, 5];
5
6 var reducer = function add(sum, num) { return sum + num; };
7
8 var total = arr.reduce(reducer, 0);
9
10 console.log(total);
2、reduce()方法实现原理
1 Array.prototype.reduce = function(callback,initialValue){
2 var previous = initialValue,k = 0,length = this.length;
3 if(typeof initialValue === "undefined"){
4 previous = this[0];
5 k = 1;
6 }
7 if(typeof callback === "function"){
8 for(k; k < length; k++){
9 previous = callback(previous, this[k], k, this);
10 }
11 }
12 return previous;
13 }