I have 2 arrays
a = [2,3,1,4]
b = [{id: 1}, {id: 2}, {id: 3}, {id: 4}]
How do I get b sorted based on a? My desir
Pretty good solution. Just keeping here for future use :)
const sortBy = (array, values, key = 'id') => ((map) => values.reduce((a,i) =>
a.push(map[i]) && a,[]))(array.reduce((a,i) => (a[i[key]] = i) && a, {}));
Usage
a = [2,3,1,4]
b = [{id: 1}, {id: 2}, {id: 3}, {id: 4}]
sortBy(b, a) // [{id: 2}, {id: 3}, {id: 1}, {id:` 4}]