Sort by Property
Generate a comparator function to sort arrays of objects by a given key, ascending or descending.
Sorting arrays of objects is a common task—whether you’re ordering users by name or sorting products by price. This generic TypeScript utility returns a comparator that sorts by a specified key. It handles strings, numbers, and dates and lets you choose ascending or descending order.
export type SortOrder = "asc" | "desc";
export function sortBy<T>(key: keyof T, order: SortOrder = "asc") {
return (a: T, b: T) => {
const va = a[key];
const vb = b[key];
if (va === vb) return 0;
const modifier = order === "asc" ? 1 : -1;
return va > vb ? modifier : -modifier;
};
}
Use it like items.sort(sortBy('createdAt', 'desc'))
to sort an array of items by their createdAt
property. Because it’s generic, the compiler will catch typos if you reference a key that doesn’t exist on the type. Adjust or extend the comparator if you need locale‑aware string comparisons or custom logic.