@monstermann/fn
Version:
A utility library for TypeScript.
31 lines (29 loc) • 603 B
JavaScript
import { dfdlT } from "@monstermann/dfdl";
//#region src/array/maxOrElse.ts
/**
* `maxOrElse(array, orElse)`
*
* Returns the maximum value from `array`, or calls `orElse` if the array is empty.
*
* ```ts
* maxOrElse([1, 5, 3], () => 0); // 5
* maxOrElse([], () => 0); // 0
* ```
*
* ```ts
* pipe(
* [1, 5, 3],
* maxOrElse(() => 0),
* ); // 5
* pipe(
* [],
* maxOrElse(() => 0),
* ); // 0
* ```
*/
const maxOrElse = dfdlT((target, orElse) => {
if (target.length === 0) return orElse(target);
return target.reduce((a, b) => Math.max(a, b), 0);
}, 2);
//#endregion
export { maxOrElse };