compareByProp
compareByProp
(key: PropertyKey, compareFn: CompareFn) => CompareFn
Create a function comparing properties intended for built-in methods such as toSorted.
Below, we sort an array of people by name.
const people = [{ name: 'mike' }, { name: 'emma' }, { name: 'luke' }] const ascending = (left, right) => left.localeCompare(right) const byName = compareByProp('name', ascending) const sortedPeople = people.toSorted(byName) console.log(sortedPeople) // is [ // { name: 'emma' }, // { name: 'luke' }, // { name: 'mike' }, // ]
const people = [{ name: 'mike' }, { name: 'emma' }, { name: 'luke' }] const ascending = (left: string, right: string) => left.localeCompare(right) const byName = compareByProp('name', ascending) const sortedPeople = people.toSorted(byName) console.log(sortedPeople) // is [ // { name: 'emma' }, // { name: 'luke' }, // { name: 'mike' }, // ]
const people = [ { name: 'mike' }, { name: 'emma' }, { name: 'luke' }, ] const ascending = (left, right) => left.localeCompare(right) const byName = compareByProp('name', ascending) const sortedPeople = people.toSorted(byName) console.log(sortedPeople) // is [ // { name: 'emma' }, // { name: 'luke' }, // { name: 'mike' }, // ]
const people = [ { name: 'mike' }, { name: 'emma' }, { name: 'luke' }, ] const ascending = (left: string, right: string) => left.localeCompare(right) const byName = compareByProp('name', ascending) const sortedPeople = people.toSorted(byName) console.log(sortedPeople) // is [ // { name: 'emma' }, // { name: 'luke' }, // { name: 'mike' }, // ]
We often want to sort data by a property. The example in 'What' shows this.
Undefined properties are handled by
compareByProp
as defined in the spec, socompareFn
will not need to handle them.