javascript: сортировка слов по возрастанию сначала начинающие с русских букв, затем с латинских

подскажите, есть ли быстрый (простой, встроенный) способ отсортировать массив строк по возрастанию, но так чтобы сначала шли слова, которые начинаются с русских букв, а затем - с латинских

обычные строки сортируются стандартно:

data.sort((a, b) => a.localeCompare(b));

а вот требуемый вид сортировки как делать?

в голову пока приходит решение в лоб - смотреть, входит ли первая буква строки (после удаления пробелов и т.п. пустых символов) в русский алфавит (т.е. проверять по массиву из 33-66 букв)

может как-то можно сделать более просто?


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

Автор решения: Aziz Umarov

Подготовил пример для наглядности.

const array = ['Вася', 'Петя', 'Андрей', 'Garry', 'Anton', 'Karl', 'Bob', 'Jonny'];

const ruCollator = new Intl.Collator('ru-RU');
const sortRu = [...array].sort((a, b) => ruCollator.compare(a, b));

const enCollator = new Intl.Collator('en-US');
const sortEn = [...array].sort((a, b) => enCollator.compare(a, b));

console.log(sortRu);
console.log(sortEn);

→ Ссылка