Skip to main content

Function: byDate()

byDate<T>(fn): Comparator<T>

Defined in: compare/typed/index.ts:38

Creates a comparator for date values.

Sorts dates chronologically (earliest to latest by default). Handles Date objects correctly for temporal sorting.

Type Parameters

T

T

Parameters

fn

ComparableExtractor<T, Date>

Function to extract the date value

Returns

Comparator<T>

A comparator for dates

Example

interface Event {
name: string
occurredAt: Date
scheduledFor: Date
}

const events = [
{ name: 'Meeting', occurredAt: new Date('2024-01-15'), scheduledFor: new Date('2024-02-01') },
{ name: 'Launch', occurredAt: new Date('2024-01-10'), scheduledFor: new Date('2024-03-01') },
{ name: 'Review', occurredAt: new Date('2024-01-20'), scheduledFor: new Date('2024-02-15') }
]

// Sort by occurred date (earliest first)
events.sort(byDate(e => e.occurredAt))
// => [Launch (Jan 10), Meeting (Jan 15), Review (Jan 20)]

// Sort by scheduled date descending (latest first)
events.sort(reverse(byDate(e => e.scheduledFor)))
// => [Launch (Mar 1), Review (Feb 15), Meeting (Feb 1)]

See

  • ascending - for generic ascending sort
  • descending - for generic descending sort