@antv/util
Version:
> AntV 底层依赖的工具库,不建议在自己业务中使用。
18 lines (15 loc) • 466 B
text/typescript
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;