数组reduce方法

2019-05-28  本文已影响0人  家有饿犬和聋猫

语法
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为一个空数组,用来放元素

上一篇 下一篇

猜你喜欢

热点阅读