Skip to main content

Function: byString()

byString<T>(fn, options?): Comparator<T>

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

Creates a comparator for string values with optional configuration.

Supports case-sensitive/insensitive comparison and locale-aware sorting.

Type Parameters

T

T

Parameters

fn

ComparableExtractor<T, string>

Function to extract the string value

options?

StringCompareOptions = {}

String comparison options

Returns

Comparator<T>

A comparator for strings

Example

interface User {
firstName: string
lastName: string
email: string
}

const users = [
{ firstName: 'alice', lastName: 'Smith', email: 'alice@example.com' },
{ firstName: 'Bob', lastName: 'Jones', email: 'bob@example.com' },
{ firstName: 'Charlie', lastName: 'Adams', email: 'charlie@example.com' }
]

// Case-sensitive sort (default)
users.sort(byString(u => u.firstName))
// => [Bob, Charlie, alice] (uppercase comes first)

// Case-insensitive sort
users.sort(byString(u => u.firstName, { caseSensitive: false }))
// => [alice, Bob, Charlie]

// Locale-aware sort
const germanNames = [
{ name: 'Müller' },
{ name: 'Mueller' },
{ name: 'Möller' }
]
germanNames.sort(byString(n => n.name, { locale: 'de-DE' }))

See

  • caseInsensitive - convenience function for case-insensitive sorting
  • localeCompare - convenience function for locale-aware sorting