Виталий Котов
Как работает метод localeCompare() - JavaScript
Метод localeCompare()
проверяет, идет ли заданная строка до, после или эквивалентна другой строке в порядке сортировки.
// сравнение 'c' и 'b' с помощью функции localeCompare()
let result1 = "c".localeCompare("b");
// возвращает положительное значение, если 'b' стоит перед 'c'
console.log(result1);
// Вывод в консоль:
// 1
Синтаксис localeCompare()
Синтаксис метода localeCompare()
следующий:
str.localeCompare(compareStr, locales, options);
Где str
- это строка.
localeCompare()
сравнивает две строки с учетом текущей локали. Это важно для корректной сортировки и сравнения текста на разных языках. Для эффективного использования localeCompare()
необходимо понимать, как работают локали и как они влияют на сравнение строк. Если вы хотите детальнее погрузиться в особенности работы со строками и учитывать при этом языковые особенности — приходите на наш большой курс JavaScript с нуля. На курсе 198 уроков и 30 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Параметры localeCompare()
Метод localeCompare()
принимает:
compareStr
- строка, с которой сравнивается
str
.
- строка, с которой сравнивается
locales
иoptions
(необязательно) - эти аргументы настраивают функцию, указывая, какие соглашения о форматировании использовать.
Возвращаемое значение localeCompare()
localeCompare()
возвращает:
- -1 : если ссылочная строка расположена перед
compareStr
. - 0 : если две строки эквивалентны.
- 1 : если ссылочная строка расположена после
compareStr
.
Примечание: поскольку возвращаемые отрицательные и положительные целые числа различаются в разных браузерах, не полагайтесь на точные значения -1 или 1.
Примеры
Пример 1: Использование метода localeCompare()
// сравнение 'c' с 'b' с помощью localeCompare()
let result1 = "c".localeCompare("b");
console.log(result1);
Вывод в консоль:
1
В приведенном выше примере мы передали 'c'
в качестве ссылочной строки и 'b'
в качестве строки сравнения и присвоили возвращаемое значение localeCompare()
к result1
.
Поскольку алфавит 'c'
идет после 'b'
, 'c'.localeCompare('b')
возвращает положительное число, т.е. 1.
Пример 2: Использование метода localeCompare()
// сравнение 'c' с 'b' с помощью localeCompare()
let result2 = "b".localeCompare("c");
console.log(result2);
Вывод в консоль:
-1
Здесь мы передали 'b'
в качестве ссылочной строки и 'c'
в качестве строки сравнения. Поскольку ссылочная строка идет перед compareStr
, 'b'.localeCompare('c')
возвращает отрицательное значение, равное -1.
Пример 3: localeCompare() с равными строками
// сравнение «JavaScript» и «JavaScript» с использованием localeCompare()
let result1 = "JavaScript".localeCompare("JavaScript");
console.log(result1);
// сравнение «Python» и «JavaScript» с использованием localeCompare()
let result2 = "Python".localeCompare("JavaScript");
console.log(result2);
Вывод в консоль:
0
1
В приведенном выше примере мы сравнили две неравные строки 'Python'
и 'JavaScript'
. Поскольку 'Python'
следует за 'JavaScript'
, метод возвращает 1.
Однако при сравнении двух равных строк 'JavaScript'
метод возвращает 0.
Пример 4: Использование localeCompare() с локалями и опциями
// передача локали, которая определяет немецкое соглашение о форматировании
let value1 = "ä".localeCompare("z", "de");
console.log(value1); // отрицательное значение: в немецком ä сортируется перед z
// передача локали, которая определяет шведское соглашение о форматировании
let value2 = "ä".localeCompare("z", "sv");
console.log(value2); // положительное значение: в шведском ä сортируется после z
// сравнение по умолчанию между двумя числами «5» и «40»
console.log("5".localeCompare("40")); // 1
// последние параметры указывают на «опции»
let value3 = "5".localeCompare("40", undefined, { numeric: true });
console.log(value3); // отрицательное значение
Вывод в консоль:
-1
1
1
-1
Метод localeCompare()
позволяет сравнивать строки с учетом локали, что важно для правильной сортировки текста. Но для создания полноценных веб-приложений необходимо освоить и другие концепции, такие как DOM, асинхронность и работа с данными. На курсе JavaScript с нуля вы получите все необходимые знания и навыки. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в JavaScript прямо сегодня.
Постройте личный план изучения Javascript до уровня Middle — бесплатно!
Javascript — часть карты развития Frontend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по Javascript
Лучшие курсы по теме

Основы JavaScript
Антон Ларичев
TypeScript с нуля
Антон Ларичев