Function: byNumber()
byNumber<
T>(fn):Comparator<T>
Defined in: compare/typed/index.ts:85
Creates a comparator for numeric values.
Handles all numeric types including integers, floats, and special values (NaN, Infinity). NaN values are treated as equal and sorted to the end.
Type Parameters
T
T
Parameters
fn
ComparableExtractor<T, number>
Function to extract the numeric value
Returns
Comparator<T>
A comparator for numbers
Example
interface Metric {
name: string
value: number
change: number
}
const metrics = [
{ name: 'CPU', value: 45.2, change: 1.5 },
{ name: 'Memory', value: 78.9, change: -2.3 },
{ name: 'Disk', value: 23.1, change: 0.8 }
]
// Sort by value (lowest first)
metrics.sort(byNumber(m => m.value))
// => [Disk (23.1), CPU (45.2), Memory (78.9)]
// Sort by change (highest first)
metrics.sort(reverse(byNumber(m => m.change)))
// => [CPU (+1.5), Disk (+0.8), Memory (-2.3)]
See
- ascending - for generic ascending sort
- descending - for generic descending sort