Skip to content

Instantly share code, notes, and snippets.

@aaronbeall
Created November 8, 2017 20:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aaronbeall/59808ac53ec990758deae6bc3deee236 to your computer and use it in GitHub Desktop.
Save aaronbeall/59808ac53ec990758deae6bc3deee236 to your computer and use it in GitHub Desktop.
TypeScript array sortOn key
function sortOn<T>(array: T[], ...fields: (keyof T)[]) {
return array.sort((a, b) => {
for (const f of fields) {
if (a[f] > b[f]) return 1;
if (a[f] < b[f]) return -1;
}
return 0;
});
}
// Example
const people = [{ name: "Jon" }, { name: "Bob" }, /*...*/];
sortOn(people, "name");
const people = [{ firstName: "Jon", lastName: "Doe" }, { firstName: "Jon", lastName: "Bo" }, /*...*/];
sortOn(people, "firstName", "lastName");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment