Этот метод сравнивает строку с другой, возвращая число (отрицательное, 0, положительное), которое указывает, является ли текущая строка меньше, равна или больше строки, переданной в качестве аргумента, в соответствии с языковым стандартом.
Языковой стандарт определяется текущим языковым стандартом, или вы можете передать его в качестве второго аргумента:
'a'.localeCompare('à') //-1
'a'.localeCompare('à', 'it-IT') //-1
Наиболее распространенный вариант использования – упорядочивание массивов:
['a', 'b', 'c', 'd'].sort((a, b) => a.localeCompare(b))
где обычно используется
['a', 'b', 'c', 'd'].sort((a, b) => (a > b) ? 1 : -1)
с той разницей, что localeCompare() позволяет нам сделать это совместимым с алфавитами, используемыми по всему миру.
Объект, переданный в качестве третьего аргумента, может быть использован для передачи дополнительных параметров. Найдите все возможные значения этих параметров в MDN .
Оригинал: “https://flaviocopes.com/javascript-string-localecompare/”