in packages/shared/src/array.ts [121:142]
export function reduce<T extends {}, TValue = T[keyof T], TResult = any>(
val: T,
iterator: MemoObjectIterator<TValue, TResult>,
accumulator?: TResult,
revert?: boolean
): TResult
export function reduce(
val: any,
iterator: any,
accumulator?: any,
revert?: boolean
): any {
let result = accumulator
each(
val,
(item, key) => {
result = iterator(result, item, key)
},
revert
)
return result
}