reduce()方法
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 }