Сортування Масивів за Допомогою Методу sort()
sort()
Метод sort() переставляє елементи масиву на місці та повертає оновлений масив. За замовчуванням сортування добре працює для рядків, але може поводитися неочікувано з числами.
Поведінка сортування за замовчуванням
Метод sort() за замовчуванням перетворює елементи на рядки та порівнює їх у порядку Unicode. Тому він природно працює для рядків, але числові масиви можуть давати неочікувані результати, якщо не вказати функцію порівняння.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Для коректного сортування чисел використовуйте функцію порівняння:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
Користувацькі порядки сортування
Для налаштування сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо користувацьке сортування як для чисел, так і для рядків. Базовий синтаксис:
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. Яким буде результат виконання наведеного нижче прикладу?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Чудово!
Completion показник покращився до 2.27
Сортування Масивів за Допомогою Методу sort()
Свайпніть щоб показати меню
sort()
Метод sort() переставляє елементи масиву на місці та повертає оновлений масив. За замовчуванням сортування добре працює для рядків, але може поводитися неочікувано з числами.
Поведінка сортування за замовчуванням
Метод sort() за замовчуванням перетворює елементи на рядки та порівнює їх у порядку Unicode. Тому він природно працює для рядків, але числові масиви можуть давати неочікувані результати, якщо не вказати функцію порівняння.
123const numbers = [1, 2, 10, 21]; numbers.sort(); console.log(numbers); // Output: 1, 10, 2, 21
Для коректного сортування чисел використовуйте функцію порівняння:
1234const numbers = [1, 2, 10, 21]; const ascending = [...numbers].sort((a, b) => a - b); console.log(ascending); // Output: 1, 2, 10, 21
Користувацькі порядки сортування
Для налаштування сортування під конкретні потреби використовується функція зворотного виклику. Ця функція, яку часто називають функцією порівняння, визначає логіку сортування. Розглянемо користувацьке сортування як для чисел, так і для рядків. Базовий синтаксис:
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. Яким буде результат виконання наведеного нижче прикладу?
Дякуємо за ваш відгук!