Сортування Масивів за Допомогою Методу sort()
sort()
Метод sort() переставляє елементи масиву на місці та повертає оновлений масив. За замовчуванням сортування добре працює для рядків, але може поводитися неочікувано з числами.
Поведінка сортування за замовчуванням
Сортування за замовчуванням відбувається коректно для масивів рядків, але числові масиви можуть викликати труднощі. Розглянемо приклади для кращого розуміння цієї поведінки:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
У цьому прикладі масив чисел сортується у зростаючому порядку, що здається простим. Однак у наступній ілюстрації з'являються нюанси:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
Метод sort() за замовчуванням розглядає елементи як рядки, що може призвести до неочікуваних результатів. Наприклад, 19 розташовується перед 2, а 25 — перед 3. Вирішення полягає в налаштуванні процесу сортування.
Користувацькі порядки сортування
Для налаштування сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо користувацьке сортування для чисел і рядків. Базовий синтаксис:
array.sort((a, b) => {
// Callback body
});
aрозглядається як перший елемент;bрозглядається як другий елемент.
Сортування чисел
У цьому прикладі функція порівняння визначає порядок зростання або спадання на основі співвідношення між елементами a та b.
1234567const 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
Сортування рядків
Метод localeCompare() забезпечує алфавітне сортування, дозволяючи налаштовувати як за зростанням, так і за спаданням.
1234567const 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
1. Яка ключова характеристика методу sort()?
2. За замовчуванням, як метод sort() обробляє елементи під час сортування?
3. Яким буде результат виконання наведеного нижче прикладу?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain why the default sort method treats numbers as strings?
How does the compare function work in the sort method?
Can you show more examples of custom sorting, like sorting objects?
Чудово!
Completion показник покращився до 2.27
Сортування Масивів за Допомогою Методу sort()
Свайпніть щоб показати меню
sort()
Метод sort() переставляє елементи масиву на місці та повертає оновлений масив. За замовчуванням сортування добре працює для рядків, але може поводитися неочікувано з числами.
Поведінка сортування за замовчуванням
Сортування за замовчуванням відбувається коректно для масивів рядків, але числові масиви можуть викликати труднощі. Розглянемо приклади для кращого розуміння цієї поведінки:
123const numbers = [51, 12, 43, 24, 65, 36]; numbers.sort(); console.log(numbers); // Output: 12, 24, 36, 43, 51, 65
У цьому прикладі масив чисел сортується у зростаючому порядку, що здається простим. Однак у наступній ілюстрації з'являються нюанси:
123const numbers = [34, 25, 19, 1, 92, 2, 3]; numbers.sort(); console.log(numbers); // Output: 1, 19, 2, 25, 3, 34, 92
Метод sort() за замовчуванням розглядає елементи як рядки, що може призвести до неочікуваних результатів. Наприклад, 19 розташовується перед 2, а 25 — перед 3. Вирішення полягає в налаштуванні процесу сортування.
Користувацькі порядки сортування
Для налаштування сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо користувацьке сортування для чисел і рядків. Базовий синтаксис:
array.sort((a, b) => {
// Callback body
});
aрозглядається як перший елемент;bрозглядається як другий елемент.
Сортування чисел
У цьому прикладі функція порівняння визначає порядок зростання або спадання на основі співвідношення між елементами a та b.
1234567const 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
Сортування рядків
Метод localeCompare() забезпечує алфавітне сортування, дозволяючи налаштовувати як за зростанням, так і за спаданням.
1234567const 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
1. Яка ключова характеристика методу sort()?
2. За замовчуванням, як метод sort() обробляє елементи під час сортування?
3. Яким буде результат виконання наведеного нижче прикладу?
Дякуємо за ваш відгук!