认识array method的reduce
前言
reduce属于javascript「synchronize同步」的array method,他就是把一整个array的所有内容,有顺序性的挤压squeeze最后变成一个值
Reduce表达式
[1,2,3,4].reduce((accumulator, currentValue) => {
//call back要做的动作,最后变成一个值
}, initValue)
//accumulator = 积累
//for迴圈将阵列内容依序一个一个的带进来Reduce 需要
- 一个变数
- 一个for回圈
- 一个初始值
reduce 简化版polyfill
const reduceFunc = (reducer, initVal, dataArray) => {
let val = initVal;
for(const i in dataArray) {
val = reducer(val, dataArray[i]);
}
return val;
}
reduceFunc((acc, current) => (acc + current), 0, [1, 2, 3, 4])以上范例是拆解reduce的工作,简单来说一开始先拿到初始值initValue,然后用for迴圈一个一个的带进去reducer(val, dataArray[i]),acc的初始值是initVal接著的每一次for迴圈acc都会是前一次结果的值,过程顺序如下:
//acc = 0, current = 1, val = 1
//acc = 1, current = 2, val = 3
//acc = 3, current = 3, val = 6
//acc = 6, current = 4, val = 10
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!