I stepped in this problem and solved it with a simple .sort
Assuming that your list to be sorted is stored in the variable needSort
and the list with the order is in the variable order
and the both are in the same scope you can run a .sort
like this:
needSort.sort(function(a,b){
return order.indexOf(a.id) - order.indexOf(b.id);
});
It worked for me, hope it helps.