Сортування масиву JavaScript - Як використовувати методи сортування JS (на прикладах коду)

У JavaScript ми можемо легко сортувати елементи масиву за допомогою вбудованого методу, який називається функцією sort ().

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

У цій публікації ви дізнаєтеся, як сортувати масив у JavaScript, використовуючи метод sort () для рядків і чисел.

Масив рядків

Почнемо з рядків:

const teams = ['Real Madrid', 'Manchester Utd', 'Bayern Munich', 'Juventus'];

Коли ми використовуємо метод sort (), елементи за замовчуванням будуть відсортовані у порядку зростання (від A до Z):

teams.sort(); // ['Bayern Munich', 'Juventus', 'Manchester Utd', 'Real Madrid']

Якщо ви віддаєте перевагу сортувати масив за спаданням, вам потрібно використовувати метод reverse ():

teams.reverse(); // ['Real Madrid', 'Manchester Utd', 'Juventus', 'Bayern Munich']

Масив чисел

На жаль, сортувати цифри не так просто. Якщо ми застосуємо метод сортування безпосередньо до масиву чисел, ми побачимо несподіваний результат:

const numbers = [3, 23, 12]; numbers.sort(); // --> 12, 23, 3

Чому метод sort () не працює для чисел

Насправді це працює, але ця проблема трапляється, оскільки JavaScript сортує цифри за алфавітом. Дозвольте пояснити це детально.

Давайте подумаємо про A = 1, B = 2 і C = 3.

const myArray = ['C', 'BC', 'AB']; myArray.sort(); // [AB, BC, C]

Наприклад, якщо у нас є три рядки як C (3), BC (23) і AB (12), JavaScript відсортує їх як AB, BC і C у порядку зростання, що є правильним за алфавітом.

Однак JavaScript відсортує цифри (знову за алфавітом) як 12, 23 та 3, що неправильно.

Рішення: Функція порівняння

На щастя, ми можемо підтримати метод sort () з базовою функцією порівняння, яка зробить трюк:

function(a, b) {return a - b}

Метод сортування, на щастя, може сортувати від’ємні, нульові та додатні значення у правильному порядку. Коли метод sort () порівнює два значення, він надсилає значення нашій функції порівняння та сортує значення відповідно до поверненого значення.

  • Якщо результат негативний, a сортується перед b.
  • Якщо результат позитивний, b сортується перед a.
  • Якщо результат 0, нічого не змінюється.

Все, що нам потрібно, це використання функції порівняння всередині методу sort ():

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return a - b}); // --> 3, 12, 23

Якщо ми хочемо відсортувати числа за спаданням, цього разу нам потрібно відняти другий параметр (b) від першого (a):

const numbers = [3, 23, 12]; numbers.sort(function(a, b){return b - a}); // --> 23, 12, 3

Загорнути

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

Якщо ви хочете дізнатись більше про веб-розробку, сміливо відвідайте мій канал Youtube.

Дякую за читання!