Menu
Coddy logo textTech

Metoda Sort

Część sekcji Logika i przepływ programu ścieżki JavaScript w Coddy. Lekcja 57 z 65.

Metoda sort() umożliwia sortowanie elementów tablicy w miejscu i zwraca posortowaną tablicę. Domyślnie sortuje elementy jako ciągi znaków w porządku alfabetycznym i rosnącym.

Oto podstawowa składnia:

array.sort([compareFunction])

Przykład bez użycia funkcji porównującej:

const fruits = ['banana', 'apple', 'orange', 'mango'];
fruits.sort();
console.log(fruits);
// ['apple', 'banana', 'mango', 'orange']

OSTRZEŻENIE: Liczby nie są sortowane zgodnie z oczekiwaniami bez funkcji porównującej:

const numbers = [1, 30, 4, 21, 100000];
numbers.sort();
console.log(numbers);
// [1, 100000, 21, 30, 4] (nieprawidłowe sortowanie liczbowe)

Aby poprawnie sortować liczby lub zaimplementować własne sortowanie, musisz użyć funkcji porównującej.

Funkcja porównująca powinna zwracać:

  • Wartość ujemną, jeśli a powinno znaleźć się przed b
  • Wartość dodatnią, jeśli b powinno znaleźć się przed a
  • Zero, jeśli są równe

Oto jak posortować liczby za pomocą funkcji porównującej:

// Porządek rosnący
const numbers = [1, 30, 4, 21, 100000];
numbers.sort((a, b) => a - b);
console.log(numbers); // [1, 4, 21, 30, 100000]
// Porządek malejący
numbers.sort((a, b) => b - a);
console.log(numbers); // [100000, 30, 21, 4, 1]

Kolejny przykład sortowania obiektów:

const people = [
    { name: 'John', age: 30 },
    { name: 'Alice', age: 25 },
    { name: 'Bob', age: 35 }
];

// Sortuj według wieku (rosnąco)
people.sort((a, b) => a.age - b.age);
// Sortuj według imienia (do sortowania alfabetycznego użyj localeCompare())
people.sort((a, b) => a.name.localeCompare(b.name));
challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie sortByLength, która przyjmuje tablicę ciągów znaków i zwraca nową tablicę z tymi samymi ciągami posortowanymi rosnąco według długości. Jeśli dwa ciągi mają tę samą długość, powinny być posortowane alfabetycznie.

Spróbuj swoich sił

function sortByLength(arr) {
    return arr.sort((a, b) => {
        // Wpisz tutaj kod
    })
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator JavaScript online