Open xiaokeqi opened 5 years ago
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的又一个数组逐项处理方法,那reduce方法跟foreach、map等数组方法又有啥区别呢。
语法 arr.reduce(callback[, initialValue])
arr.reduce(callback[, initialValue])
参数
var arr = [1,2,3]; var sum = 0; arr.forEach(function(item,index){ sum+=item; }) console.log(sum);//6
map实现
var arr= [1,2,3]; var sum = 0; arr.map(function(item,index){ sum += item }) console.log(sum); //6
reduce实现
var arr = [1,2,3]; console.log(arr.reduce(function(prev,current,currentindex,arr){ return prev+current; }, 0)) // 6
只能累加么?当然不是,如下 传入初始值
var arr = [1,2,3]; console.log(arr.reduce(function(prev,current,currentindex,arr){ return prev+current; }, 10))//16
求乘积 var pro = arr.reduce(function(pre,cur,index,arr){return pre * cur}) 求最大值 var max = a.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;});
var pro = arr.reduce(function(pre,cur,index,arr){return pre * cur})
var max = a.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;});
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的又一个数组逐项处理方法,那reduce方法跟foreach、map等数组方法又有啥区别呢。
语法
arr.reduce(callback[, initialValue])
参数
map实现
reduce实现
只能累加么?当然不是,如下 传入初始值
求乘积
var pro = arr.reduce(function(pre,cur,index,arr){return pre * cur})
求最大值var max = a.reduce(function(pre,cur,inde,arr){return pre>cur?pre:cur;});