Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Intl.Collator

Сравнивает строки по правилам языка — для быстрой сортировки по алфавиту.

Доступно с: ES2015 (Intl)

Синтаксис

new Intl.Collator(locales, options)

Параметры

ПараметрТипОписание
localesstringНеобязательный. Язык, по правилам которого сравниваются строки.
optionsobjectНеобязательный. 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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.