@walts81/linq-ts
Version:
Typescript/Javascript LINQ implementation library
23 lines (22 loc) • 777 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.minOrMax = void 0;
const _common_1 = require("./_common");
function minOrMax(collection, selector, comparer, type) {
if (collection.length === 0)
throw new _common_1.EmptyArrayException();
let result = undefined;
let resultIndex = 0;
for (let i = 0; i < collection.length; i++) {
const item = collection[i];
if (result === undefined ||
(type === 'max'
? comparer(selector(item, i), selector(result, resultIndex)) > 0
: comparer(selector(item, i), selector(result, resultIndex)) < 0)) {
result = item;
resultIndex = i;
}
}
return result;
}
exports.minOrMax = minOrMax;