@arrows/array
Version:
Functional tools for JS arrays
24 lines (19 loc) • 655 B
text/typescript
import curry from "@arrows/composition/curry"
type MappingFn<V> = (currentValue?: V, index?: number, array?: V[]) => unknown
type _Map = <T>(mappingFn: MappingFn<T>, arr: T[]) => unknown[]
type _Map2 = <T>(mappingFn: MappingFn<T>) => (arr: T[]) => unknown[]
type Map = _Map & _Map2
const _map: _Map = (fn, arr) => arr.map(fn)
/**
* Functional wrapper for Array.prototype.map
*
* Calls a defined mapping function on each element of an array,
* and returns an array that contains the results.
*
* @param mappingFn Mapping function
* @param arr Initial array
* @return New array
*/
const map: Map = curry(_map)
export { map }
export default map