传统累加
arr=[1,2,3,4]
let total=0
arr.forEach(item => {total=total+item});
console.log(total)
使用reduce方法累加
传入两个参数,第一个是回调函数,第二个是可选值
回调函数里面可以传入4个参数
item,数组当前项
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