Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@JamieDixon
Created January 3, 2019 09:36
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 JamieDixon/0a39d7bb02416a6e97f085be6e00d7d6 to your computer and use it in GitHub Desktop.
Save JamieDixon/0a39d7bb02416a6e97f085be6e00d7d6 to your computer and use it in GitHub Desktop.
const sortArrayByList = (fn, arr, order) =>
arr.sort(
(item1, item2) =>
order.indexOf(fn(item1)) > order.indexOf(fn(item2)) ? 1 : -1
);
const selector = x => x.name;
const arr = [{ name: 'Jamie' }, { name: 'Simon' }, { name: 'Paul' }, { name: 'Stuart' }];
const order = ['Stuart', 'Paul', 'Simon', 'Jamie'];
const result = sortArrayByList(selector, arr, order);
// [{ name: 'Stuart' }, { name: 'Paul' }, { name: 'Simon' }, { name: 'Jamie' }];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment