Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод String.localeCompare()

Загальний опис

Властивість String.prototype.localeCompare() - це потужний метод для порівняння двох рядків з урахуванням локалізації. Цей метод повертає числове значення, що вказує на відносне розташування рядків. Він особливо корисний для впорядкування або порівняння рядків у мовах, де порядок символів відрізняється від англійського алфавіту, а також при роботі з міжнародними даними.

Для використання localeCompare(), необхідно викликати його на одному рядку, передаючи інший рядок як аргумент. Метод повертає -1, 0 або 1. Якщо перший рядок має йти перед другим у сортуванні, метод повертає -1. Якщо рядки ідентичні, повертається 0. І, нарешті, якщо перший рядок має йти після другого, повертається 1. Наприклад:

let str1 = "абрикос";
let str2 = "яблуко";
console.log(str1.localeCompare(str2)); // може повернути -1

Метод localeCompare() також може приймати другий параметр - локалі (наприклад, "en" для англійської або "uk" для української), що дозволяє вказати правила сортування для конкретної мови:

console.log(str1.localeCompare(str2, 'uk')); // використовує правила сортування української мови

Однією з ключових особливостей localeCompare() є його здатність до точного порівняння рядків, враховуючи локалізаційні особливості. Це робить його незамінним у міжнародних додатках, де потрібно враховувати локальні відмінності при сортуванні та порівнянні рядків.

Порада:

Використовуйте метод localeCompare() для порівняння рядків у відповідності з локальними правилами сортування. Це особливо корисно, коли вам потрібно впорядковувати дані, які містять символи специфічних мов, таких як акценти, умлаути чи інші спеціальні символи.

Порада:

localeCompare()` повертає ціле число: якщо менше нуля, це означає, що початковий рядок розташований перед порівняльним рядком; якщо більше нуля - після; якщо рівне нулю, рядки вважаються рівними. Це можна використати для реалізації точних та чутливих до локалі сортувань.

Порада:

При роботі з великими наборами даних краще спочатку визначити критерії сортування, а потім виконати сортування, щоб оптимізувати продуктивність. Це дозволяє уникнути повторного виклику localeCompare() для кожної пари порівнянь, що може бути часозатратним для великих обсягів даних.

Синтаксис

localeCompare(compareString)
localeCompare(compareString, locales)
localeCompare(compareString, locales, options)

Параметри

*compareString

Рядок, з яким порівнюється початковий рядок. Всі значення автоматично перетворюються на рядки, тому пропуск цього аргументу або передача undefined призведе до порівняння з рядком "undefined", що, як правило, не є бажаним.

locales

Рядок з тегом мови BCP 47 або масив таких рядків. Відповідає параметру locales конструктора Intl.Collator(). Дозволяє вказати локалізацію для порівняння, що впливає на правила сортування і порівняння.

options

Об'єкт, який налаштовує формат виведення. Відповідає параметру options конструктора Intl.Collator(). Може включати такі налаштування, як чутливість до регістру та акцентів, вибір між числовим і нумеричним порівнянням тощо.

Return

number

Повертає числове значення, яке вказує на взаємне розташування двох рядків у порядку сортування з урахуванням локальних особливостей. Якщо перший рядок (referenceStr) слід розміщувати перед другим (compareString), метод повертає від'ємне число. Якщо перший рядок слід розміщувати після другого, метод повертає додатне число. У випадку, коли рядки еквівалентні, повертається 0.

Переглядачі

Переглядач

1

1

3

7

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


У цьому прикладі користувачі можуть ввести два рядки і вибрати локаль для порівняння. Після натискання на кнопку "Порівняти", вони побачать результат порівняння: -1, 0 або 1, відповідно до відносного порядку рядків у вибраній локалі.

У цьому прикладі ми використовуємо String.prototype.localeCompare() для порівняння двох рядків. Цей метод повертає числове значення, яке показує, чи розміщений перший рядок перед, після або в тому ж порядку, що й другий рядок, при сортуванні відповідно до локальних правил.

// Створюємо два рядки для порівняння
let string1 = "абрикос";
let string2 = "банан";

// Порівнюємо рядки
let comparisonResult = string1.localeCompare(string2);

console.log(comparisonResult); // Виводить: -1, оскільки "абрикос" йде перед "банан"

У цьому складнішому прикладі localeCompare() використовується з додатковими опціями, що дозволяють налаштувати порівняння рядків з урахуванням локальних особливостей та чутливості до регістру. Це корисно для більш точного порівняння рядків, особливо в міжнародних додатках.

// Створюємо два рядки для порівняння
let germanString1 = "Straße";
let germanString2 = "strasse";

// Порівнюємо рядки з врахуванням локалі та чутливості до регістру
let comparisonResult = germanString1.localeCompare(germanString2, 'de', { sensitivity: 'base' });

console.log(comparisonResult); // Виводить: 0, оскільки в німецькій мові ці рядки вважаються еквівалентними