String.prototype.localeCompare
Сравнивает строки по правилам языка — для сортировки по алфавиту.
Доступно с: ES3
Синтаксис
str.localeCompare(compareString, locales, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| compareString | string | Строка, с которой сравнивают. |
| locales | string | Необязательный. Язык, по правилам которого сравниваются строки, например en или ru. |
| options | object | Необязательный. Настройки, например sensitivity или numeric. |
Возвращаемое значение
numberОтрицательное число, 0 или положительное — строка идёт раньше, равна или позже.
Примеры
Результат сравнения:
console.log('apple'.localeCompare('banana'));
console.log('banana'.localeCompare('apple'));
console.log('apple'.localeCompare('apple'));Результат:
-1
1
0Сортировка имён по алфавиту:
const names = ['oleg', 'Anna', 'Émile', 'boris'];
console.log(names.sort((a, b) => a.localeCompare(b)).join(', '));Результат:
Anna, boris, Émile, olegЧисла внутри строк сравниваются как числа:
const files = ['file10', 'file2', 'file1'];
console.log(files.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })).join(', '));Результат:
file1, file2, file10Примечания
Обычный sort() без функции сравнивает коды символов: заглавные буквы попадают раньше строчных, а буквы с диакритикой — в конец. localeCompare() сортирует так, как ожидает человек.
См. также
- Array.prototype.sort — Сортирует элементы массива.
- Intl.Collator — Сравнивает строки по правилам языка — для быстрой сортировки по алфавиту.
- String.prototype.toLowerCase — Переводит строку в нижний регистр.
Вопросы и ответы по теме
В учебнике
- Сортировка массивов — Как отсортировать массив в JavaScript: sort, функция сравнения, сортировка чисел, строк и объектов, reverse и toSorted.