Skip to content

Combine a series of sort functions to create complex sort orders.

License

Notifications You must be signed in to change notification settings

cameronhunter/sort-order

Repository files navigation

sort-order

npm package npm downloads main branch status

Combine a series of sort functions to create complex sort orders.

Install

npm install --save sort-order

Example

Sort an array of objects by creator first, then joinTime and finally id:

import sortBy from 'sort-order';

// Items to order
const a = { creator: true, joinTime: 0, id: 987 };
const b = { creator: false, joinTime: 1, id: 123 };
const c = { creator: false, joinTime: 1, id: 456 };
const d = { creator: false, joinTime: 2, id: 789 };

// Individual sort functions
const creator = (a, b) => (a.creator && -1) || (b.creator && 1) || 0;
const field = (field) => (a, b) => a[field] - b[field];

// Combined sort function
const ordering = sortBy(creator, field('joinTime'), field('id'));

// Sort!
[d, c, b, a].sort(ordering); // [a, b, c, d]

About

Combine a series of sort functions to create complex sort orders.

Resources

License

Stars

Watchers

Forks

Packages