语法
let arr=[]
arr.reduce(
( pre ,val ,index , arr)=>{
.....
},init
)
pre: 函数的上一个返回值;
val : 数组的每一个原色;
index :当前的索引 ;
arr : 该数组
init : pre的初始值
1 先提供一个原始数组
let sot=[1,3,2,4,3,5,3,6,7,8]
2 打印看看每一项参数的值
sot.reduce((pre,val,index,arr)=>{
console.log("pre,val,index,arr",pre,val,index,arr)
})
image.png
初始值为0 所以第一个pre为0 ;因为没有返回值,所以后面的pre的值是undefined
3 求所有元素的和
var allnum=sot.reduce((pre,val,index,arr)=>{
return pre+val
},0)
console.log("allnum",allnum)
// 结果为 42
4 求数组元素的最大值
var max=sot.reduce((pre,val,index,arr)=>{
console.log("pre,val,index,arr : ",pre,val,index,arr)
return Math.max(pre,val)
},0)
console.log("max",max)
// 结果为 8
image.png
每一个pre都是前面元素最大值 ,和下一个元素比较,再返回最大值,依次往后推
5 数组去重
var mot = sot.reduce((pre,val,index,arr)=>{
console.log("pre,val,index,arr : ",pre,val,index,arr)
pre.indexOf(val)===-1&&pre.push(val)
return pre
},[])
console.log("mot",mot)
image.png
初始pre为一个空数组,用来放元素
网友评论