UNPKG

@antv/util

Version:

<h1 align="center">@antv/util</h1>

18 lines (15 loc) 466 B
import each from './each'; import isArray from './is-array'; import isPlainObject from './is-plain-object'; import { ObjectType } from './types'; const reduce = function <T, G>(arr: G[] | ObjectType<T>, fn: (result: T, data: G, idx: string | number) => T, init: T) { if (!isArray(arr) && !isPlainObject(arr)) { return arr; } let result = init; each(arr, (data, i) => { result = fn(result, data, i); }); return result; }; export default reduce;