Intl.Collator
Сравнивает строки по правилам языка — для быстрой сортировки по алфавиту.
Доступно с: ES2015 (Intl)
Синтаксис
new Intl.Collator(locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| locales | string | Необязательный. Язык, по правилам которого сравниваются строки. |
| options | object | Необязательный. numeric: true — числа внутри строк; sensitivity: base — без учёта регистра и диакритики. |
Возвращаемое значение
Intl.CollatorОбъект с методом compare(a, b).
Примеры
Сортировка с учётом языка:
const collator = new Intl.Collator('de');
const words = ['Zebra', 'äpfel', 'Apfel', 'zoo'];
console.log(words.sort(collator.compare).join(', '));Результат:
Apfel, äpfel, Zebra, zooЕстественная сортировка имён файлов:
const collator = new Intl.Collator(undefined, { numeric: true });
console.log(['img12.png', 'img2.png', 'img1.png'].sort(collator.compare).join(', '));Результат:
img1.png, img2.png, img12.pngСравнение без учёта регистра:
const collator = new Intl.Collator('en', { sensitivity: 'base' });
console.log(collator.compare('Anna', 'anna') === 0);Результат:
trueПримечания
Делает то же, что localeCompare(), но для больших массивов быстрее: правила языка загружаются один раз. Метод compare можно передавать в sort() напрямую.
См. также
- String.prototype.localeCompare — Сравнивает строки по правилам языка — для сортировки по алфавиту.
- Array.prototype.sort — Сортирует элементы массива.
- Array.prototype.toSorted — Возвращает отсортированную копию массива, не меняя исходный.
В учебнике
- Сортировка массивов — Как отсортировать массив в JavaScript: sort, функция сравнения, сортировка чисел, строк и объектов, reverse и toSorted.