Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Сортування Масивів за Допомогою Методу sort() | Розширені Методи Масивів та Трансформації
Структури Даних JavaScript

bookСортування Масивів за Допомогою Методу sort()

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

sort()

Метод sort() змінює вихідний масив, надаючи йому новий порядок елементів.

Основні характеристики:

  • Вихідний масив змінюється, елементи отримують новий порядок;
  • Метод повертає змінений масив, що дозволяє подальше використання;
  • За замовчуванням метод sort() впорядковує елементи у зростаючому порядку.

Поведінка сортування за замовчуванням

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

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

У цьому прикладі масив чисел відсортовано за зростанням, що здається очевидним. Проте певні нюанси проявляються у наступній ілюстрації:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

sort() за замовчуванням розглядає елементи як рядки, що може призводити до неочікуваних результатів. Наприклад, 19 розташовується перед 2, а 25 — перед 3. Вирішенням є налаштування процесу сортування.

Користувацькі порядки сортування

Для адаптації сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо приклади користувацького сортування для чисел і рядків. Базовий синтаксис:

array.sort((a, b) => {
  // Callback body
});
  • a розглядається як перший елемент;
  • b розглядається як другий елемент.

Сортування чисел

У цьому випадку функція порівняння визначає порядок зростання або спадання на основі співвідношення між елементами a та b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Сортування рядків

Метод localeCompare() забезпечує алфавітне сортування, дозволяючи налаштовувати як зростаючий, так і спадний порядок.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Яка ключова характеристика методу sort()?

2. Як метод sort() за замовчуванням обробляє елементи під час сортування?

3. У наведеному нижче прикладі, який буде результат виводу?

question mark

Яка ключова характеристика методу sort()?

Select the correct answer

question mark

Як метод sort() за замовчуванням обробляє елементи під час сортування?

Select the correct answer

question mark

У наведеному нижче прикладі, який буде результат виводу?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain why the default sort method treats numbers as strings?

How do I use a custom compare function for more complex sorting?

Can you show more examples of sorting arrays with objects?

Awesome!

Completion rate improved to 2.27

bookСортування Масивів за Допомогою Методу sort()

Свайпніть щоб показати меню

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

sort()

Метод sort() змінює вихідний масив, надаючи йому новий порядок елементів.

Основні характеристики:

  • Вихідний масив змінюється, елементи отримують новий порядок;
  • Метод повертає змінений масив, що дозволяє подальше використання;
  • За замовчуванням метод sort() впорядковує елементи у зростаючому порядку.

Поведінка сортування за замовчуванням

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

123
const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
copy

У цьому прикладі масив чисел відсортовано за зростанням, що здається очевидним. Проте певні нюанси проявляються у наступній ілюстрації:

123
const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
copy

sort() за замовчуванням розглядає елементи як рядки, що може призводити до неочікуваних результатів. Наприклад, 19 розташовується перед 2, а 25 — перед 3. Вирішенням є налаштування процесу сортування.

Користувацькі порядки сортування

Для адаптації сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо приклади користувацького сортування для чисел і рядків. Базовий синтаксис:

array.sort((a, b) => {
  // Callback body
});
  • a розглядається як перший елемент;
  • b розглядається як другий елемент.

Сортування чисел

У цьому випадку функція порівняння визначає порядок зростання або спадання на основі співвідношення між елементами a та b.

1234567
const numbers = [34, 25, 19, 1, 92, 2, 3]; const ascendingNumbers = [...numbers].sort((a, b) => a - b); console.log(ascendingNumbers); // Output: 1, 2, 3, 19, 25, 34, 92 const descendingNumbers = [...numbers].sort((a, b) => b - a); console.log(descendingNumbers); // Output: 92, 34, 25, 19, 3, 2, 1
copy

Сортування рядків

Метод localeCompare() забезпечує алфавітне сортування, дозволяючи налаштовувати як зростаючий, так і спадний порядок.

1234567
const employees = ["Antonia", "Rene", "Casey", "Lorraine", "Shelia"]; const inAlphabetOrder = [...employees].sort((a, b) => a.localeCompare(b)); console.log(inAlphabetOrder); // Antonia, Casey, Lorraine, Rene, Shelia const inReversedOrder = [...employees].sort((a, b) => b.localeCompare(a)); console.log(inReversedOrder); // Shelia, Rene, Lorraine, Casey, Antonia
copy

1. Яка ключова характеристика методу sort()?

2. Як метод sort() за замовчуванням обробляє елементи під час сортування?

3. У наведеному нижче прикладі, який буде результат виводу?

question mark

Яка ключова характеристика методу sort()?

Select the correct answer

question mark

Як метод sort() за замовчуванням обробляє елементи під час сортування?

Select the correct answer

question mark

У наведеному нижче прикладі, який буде результат виводу?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7
some-alt