Метод localeCompare() сравнивает одну строку с другой и возвращает одно из трех значений:

  • Если строка str должна располагаться по алфавиту перед строковым аргументом compareString, возвращается отрицательное число (обычно -1, но вообще значение может за­ висеть от реализации браузера и его версии).
  • Если строка str равна строковому аргументу compareString, возвращается 0.
  • Если строка str должна располагаться по алфавиту после строкового аргумента compareString, возвращается положительное число (обычно 1, но значение опять же может зависеть от реализации).

str.localeCompare(compareString[, locales[, options]])
compareString
Строка, которую нужно сравнить со строковым объектом str.
locales
Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк, которые содержат один или несколько тегов языка или языкового стандарта. Если включить несколько строк языкового стандарта, нужно перечислить их в порядке убывания приоритета, чтобы первая запись была предпочитаемым языковым стандартом. Если пропустить этот параметр, то используется языковой стандарт по умолчанию среды выполнения JavaScript. Описание общей формы и интерпретации аргумента locales смотрите здесь.
options
Необязательный параметр. Объект, содержащий одно или несколько свойств, задающих параметры сравнения. Дополнительные сведения смотрите здесь.

Результатом метода возвращается число, служащее индикатором того, как будут размещаться сравниваемые строки: строка str, из которой вызывается метод localeCompare(), и строка compareString, переданная аргументом методу при сортировке:

  • отрицательное число (обычно -1) означает, что строка вызова при сортировке размещается перед строкой-аргументом;
  • ноль означает одинаковый приоритет сравниваемых строк;
  • положительное число (обычно 1) означает, что строка вызова при сортировке будет находиться после строки-аргумента.

Выполнить код »

В этом примере строка "green" сравнивается со значениями "black", "green" и "silver". Поскольку строка "black" предшествует по алфавиту строке "green", метод localeCompare() возвращает 1. Строка "green" равна самой себе, поэтому во втором случае метод localeCompare() возвращает О. Строка "silver" распола­гается по алфавиту после строки "green", поэтому в третьем сравнении возвращается значение -1.

Обратите внимание: Результат сравнения двух строк может сильно различаться в зависимости от браузера и его версии. Происходит это потому, что возвращаемые значения зависят от реализации. То есть, спецификация требует только того, чтобы значение было отрицательным (-1, -2 и т.д.), если строка вызова при сортировке размещается перед строкой-аргументом, и положительным (1, 2 и т.д.) – если после.

Так как возвращаемые значения зависят от реализации, предпочтительнее использовать метод localeCompare() следующим образом:

Выполнить код »

Комментарии

пожелания к комментариям…
  • Приветствуются комментарии, соответствующие теме урока: вопросы, ответы, предложения.
  • Одну строчку кода оборачивайте в тег <code>, несколько строчек кода — в теги <pre><code>...ваш код...</code></pre>.
  • Допускаются ссылки на онлайн-песочницы (codepen, plnkr, JSBin и др.).