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