Как правильно отсортировать строку в алфавитном порядке?

// Создать функцию, которая упорядочит буквы в строке "екважбигёзд" в алфавитном порядке и возвратит строку в обратном порядке ("кизжёедгвба").

string = "екважбигёзд";

function sortAndReverse(string) {
  return string.split('').sort().reverse().join('');
}

console.log(sortAndReverse(string));

Получаю вывод: ёкизжедгвба А нужен: кизжёедгвба

Я так понимаю нужно использовать LocaleCompare? Исправьте мой код пожалуйста, чтобы он работал верно


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

Автор решения: Владлен Волков
function sortInAlphabetic(str) {
   function sortFn(a, b) {
       return a.toLowerCase().charCodeAt(0) - b.toLowerCase().charCodeAt(0)
   }
   
   return str.split('').sort(sortFn).join('')
}
→ Ссылка
Автор решения: Alexander Lonberg

const string = "екважбигёзд"
const collator =  new Intl.Collator('ru')

function sortAndReverse(string) {
  return string.split('').sort((a,b)=>collator.compare(a,b)).reverse().join('')
}

console.log(sortAndReverse(string))

UPD: Исходя из комментариев @Qwertiy @wololo @teran немного модифицируем и убираем лишний revers

const string = "екважбигёзд"
const compare = (new Intl.Collator('ru')).compare

function sortAndReverse(string, reverse = false) {
  return string.split('')
    .sort((a, b) => ((reverse ? -1 : 1) * compare(a, b)))
    .join('')
}

console.log(sortAndReverse(string))
console.log(sortAndReverse(string, true))

→ Ссылка