Как сортировать по индексу другого массива в js?
Сортировать по indexOf( ID ) в массиве, задающем порядок сортировки:var data = [
  {ID: 1, country: 'England'},
  {ID: 4, country: 'USA'},
  {ID: 9, country: 'Russia'},
  {ID: 5, country: 'Germany'},
  {ID: 6, country: 'France'},
];

const order = [5,1,9,6,4];

data.sort((a,b) => order.indexOf(a.ID) - order.indexOf(b.ID));

/* [
  {"ID":5,"country":"Germany"},
  {"ID":1,"country":"England"},
  {"ID":9,"country":"Russia"},
  {"ID":6,"country":"France"},
  {"ID":4,"country":"USA"}]
*/
На больших массивах для ускорения:добавить в исходный массив новое поле с порядковым номером, который каждый элемент должен занять после сортировки;отсортировать по этому полю.
Так будет быстрее, чем на каждой операции сравнения двух элементов искать их индексы во втором массиве.data = data.map( e => {e.sortBy = order.indexOf(e.ID); return e;} );
data.sort( (a,b) => a.sortBy - b.sortBy);
Думаю вот так будет правильней и быстрей:function sortData(data, sortingOrder) {
  var result = [];

  for (var i = 0; i < data.length; i++) {
    result[sortingOrder.indexOf(data[i].ID)] = data[i];
  }
  
  return result;
}