Сортировка массива в JS в зависимости от начала строки

Всем привет, есть список из названий:

  1. ДР-Адлер/001
  2. ДР-Адлер/002
  3. ДР-Сочи/002
  4. ДР-АД-Адлер/001
  5. ДР-Брянск/002

Ожидаемый результат:

  1. ДР-Адлер/001
  2. ДР-Адлер/002
  3. ДР-Брянск/002
  4. ДР-Сочи/002
  5. ДР-АД-Адлер/001

Через SQL запрос я делал вот так SELECT id, name FROM dr_list ORDER BY name LIKE '%ДР-АД-%', name

А вот в JS не могу понять как так же отсортировать. Может кто подкинуть идей?

UPD1: Накидал такую функцию, добавил в массив "ДР-ААдлер", но после сортировки значение находится перед ДР-АД-Адлер/001

enabled_sl_name.sort(function(a, b){
    if(a.includes('ДР-АД-')) { return 1; }
    if(b.includes('ДР-АД-')) { return -1; }
    if(a.includes('ДР-АД-') & b.includes('ДР-АД-') & a > b) { return 1; }
    if(a.includes('ДР-АД-') & b.includes('ДР-АД-') & a < b) { return -1; }
    return 0;
})

Ответы (1 шт):

Автор решения: Pilaton

let arr = ['ДР-Адлер/001', 'ДР-Адлер/002', 'ДР-Сочи/002', 'ДР-АД-Адлер/003', 'ДР-АД-Адлер/001', 'ДР-Брянск/002'];

let newArr = arr.filter((a) => !a.includes('ДР-АД-')).sort();
newArr.push(...arr.filter((a) => a.includes('ДР-АД-')).sort());

console.log('newArr', newArr);

→ Ссылка