reduce遍历数组

106 阅读1分钟

传统累加

   arr=[1,2,3,4]
   let total=0
   //item指向回调函数
   arr.forEach(item => {total=total+item});
   console.log(total)

使用reduce方法累加

传入两个参数,第一个是回调函数,第二个是可选值
回调函数里面可以传入4个参数
item,数组当前项
index,数组当前下标
data,原数组的值 
temp,约等于total

reduce累加案例

<script>
      arr=[1,2,3,4]
      let res=arr.reduce((temp,item,index,data)=>{
      console.log(temp,item)
      return temp+item;
      },0)
      console.log(res)
</script>

解析

如果reduce**传入**了第二个值,第二个值会作为循环的第一个temp值,item作为数组第一项元素开始循环
如果**不传入**第二个值,数组的第一项会作为temp,第二项会作为item,循环从第二项开始
执行过程
temp 0        item 1 0+1
temp 1        item 2 1+2
temp 3        item 3 3+3
temp 6        item 4 6+4
10