UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

52 lines (51 loc) 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var purry_1 = require("./purry"); var sortBy_1 = require("./sortBy"); function minBy() { return purry_1.purry(_minBy, arguments); } exports.minBy = minBy; function _minBy(array, fn) { var items = sortBy_1.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; } function maxBy() { return purry_1.purry(_maxBy, arguments); } exports.maxBy = maxBy; function _maxBy(array, fn) { var def = fn || (function (q) { return Number(q); }); var items = sortBy_1.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; }