UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

48 lines (47 loc) 1.2 kB
import { purry } from './purry'; import { sortBy } from './sortBy'; export function minBy() { return purry(_minBy, arguments); } function _minBy(array, fn) { var items = sortBy(array, fn); var minArr = []; var minV = 0; for (var _i = 0, items_1 = items; _i < items_1.length; _i++) { var i = items_1[_i]; if (minArr.length === 0) { minArr.push(i); minV = fn(i); continue; } if (minV === fn(i)) { minArr.push(i); continue; } break; } return minArr; } export function maxBy() { return purry(_maxBy, arguments); } function _maxBy(array, fn) { var def = fn || (function (q) { return Number(q); }); var items = sortBy(array, function (q) { return -1 * def(q); }); var minArr = []; var maxV = 0; for (var _i = 0, items_2 = items; _i < items_2.length; _i++) { var i = items_2[_i]; if (minArr.length === 0) { minArr.push(i); maxV = def(i); continue; } if (maxV === def(i)) { minArr.push(i); continue; } break; } return minArr; }