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);