Skip to main content

Function: withTiebreaker()

withTiebreaker<T>(primary, tiebreaker): Comparator<T>

Defined in: compare/combinators/index.ts:216

Combines a primary comparator with a tiebreaker for when values are equal.

More explicit alternative to compose for two-level sorting.

Type Parameters

T

T

Parameters

primary

Comparator<T>

The primary comparator

tiebreaker

Comparator<T>

The comparator to use when primary returns 0

Returns

Comparator<T>

A comparator with explicit tiebreaking

Example

interface Player {
name: string
score: number
level: number
}

const players = [
{ name: 'Alice', score: 1000, level: 5 },
{ name: 'Bob', score: 1000, level: 3 },
{ name: 'Charlie', score: 800, level: 4 }
]

// Sort by score (descending), break ties by level (descending)
players.sort(
withTiebreaker(
descending(p => p.score),
descending(p => p.level)
)
)
// => [{ name: 'Alice', score: 1000, level: 5 },
// { name: 'Bob', score: 1000, level: 3 },
// { name: 'Charlie', score: 800, level: 4 }]

See

compose - for multi-level sorting with more than 2 levels