ts-prime
Version:
A utility library for JavaScript and Typescript.
48 lines (47 loc) • 1.2 kB
JavaScript
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;
}