From df12d1bf0d410116e3adc48369e8e73cedcee066 Mon Sep 17 00:00:00 2001 From: Roman Timashev Date: Wed, 24 Feb 2016 20:52:15 +0300 Subject: [PATCH] + sort.js utils --- src/utils/sort.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/utils/sort.js diff --git a/src/utils/sort.js b/src/utils/sort.js new file mode 100644 index 00000000..7a168e57 --- /dev/null +++ b/src/utils/sort.js @@ -0,0 +1,15 @@ +export function sortByPattern(list, pattern, map) { + let weight = i => { + const index = pattern.indexOf(map(i)); + return index > -1 ? pattern.length - index : 0; + }; + + return sortByWeight(list, weight) +} + +export function sortByWeight(list, fn) { + return list + .map(i => [fn(i), i]) + .sort((a, b) => b[0] - a[0]) + .map(i => i[1]); +} \ No newline at end of file