Encodera

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

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

Справочник JavaScript

String.prototype.localeCompare

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

Доступно с: ES3

Синтаксис

str.localeCompare(compareString, locales, options)

Параметры

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

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

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