15 lines
418 B
TypeScript
15 lines
418 B
TypeScript
export function minByOrNull<T>(value: T[], transform: (it: T) => number): T | null {
|
|
if (value.length === 0) return null;
|
|
let min = value[0];
|
|
let minVal = transform(min);
|
|
for (let index = 1; index < value.length; index++) {
|
|
const it = value[index];
|
|
const val = transform(it);
|
|
if (val < minVal) {
|
|
min = it;
|
|
minVal = val;
|
|
}
|
|
}
|
|
return min;
|
|
}
|