1234567891011121314151617181920212223242526272829 |
- // @flow strict
- declare function flatMap<T, U>(
- list: $ReadOnlyArray<T>,
- fn: (item: T, index: number) => $ReadOnlyArray<U> | U,
- ): Array<U>;
- // Workaround to make older Flow versions happy
- const flatMapMethod = (Array.prototype: any).flatMap;
- /* eslint-disable no-redeclare */
- // $FlowFixMe
- const flatMap = flatMapMethod
- ? function(list, fn) {
- return flatMapMethod.call(list, fn);
- }
- : function(list, fn) {
- let result = [];
- for (const item of list) {
- const value = fn(item);
- if (Array.isArray(value)) {
- result = result.concat(value);
- } else {
- result.push(value);
- }
- }
- return result;
- };
- export default flatMap;
|