Sortowanie tablic jest podstawową, ale niezbędną umiejętnością w pracy każdego programisty. JavaScript oferuje metody umożliwiające sortowanie, jednak prawidłowe ich zastosowanie wymaga zrozumienia, jak działa funkcja porównująca przekazywana do metody sort(). W tej lekcji wyjaśnimy, jakie wartości powinna zwracać funkcja porównująca, aby sortowanie było wykonane prawidłowo.
Funkcja porównująca
Funkcja porównująca przyjmuje dwa argumenty (oznaczmy je jako a i b), które są wartościami porównywanymi w trakcie sortowania. Na podstawie zwróconej wartości metoda sort() decyduje, w jaki sposób umieścić te elementy względem siebie w tablicy.
- Jeśli zwróci wartość mniejszą od 0, element azostanie umieszczony przed elementemb.
- Jeśli zwróci wartość równą 0, kolejność elementów aibwzględem siebie zostanie zachowana.
- Jeśli zwróci wartość większą od 0, element bzostanie umieszczony przed elementema.
Przykład sortowania liczb
let numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
    return a - b;
});
console.log(numbers); // [1, 2, 3, 4, 5]
W powyższym przykładzie, funkcja porównująca return a - b; zwraca różnicę między liczbami. Dzięki temu, jeśli a jest mniejsze od b, zwracana jest wartość ujemna, co umieszcza a przed b.
Sortowanie tablicy ciągów znaków z uwzględnieniem wielkości liter
let words = ['banana', 'Orange', 'apple', 'Mango'];
words.sort(function(a, b) {
    return a.toLowerCase().localeCompare(b.toLowerCase());
});
console.log(words); // ['apple', 'banana', 'Mango', 'Orange']
Funkcja localeCompare() porównuje ciągi znaków zgodnie z lokalnym porządkiem sortowania, zwracając wartości zgodne z wymaganiami funkcji porównującej.
Sortowanie tablicy obiektów
let items = [
    { name: 'Edward', value: 21 },
    { name: 'Sharpe', value: 37 },
    { name: 'And', value: 45 },
    { name: 'The', value: -12 },
    { name: 'Magnetic', value: 13 },
    { name: 'Zeros', value: 37 }
];
items.sort(function(a, b) {
    return a.value - b.value;
});
console.log(items);
W tym przykładzie, sortujemy obiekty według wartości value. Funkcja porównująca dokładnie określa, jak posortować elementy na podstawie tej właściwości.
Podsumowanie
Zrozumienie, jak działa funkcja porównująca w metodzie sort(), jest kluczowe do efektywnego sortowania tablic w JavaScript. Poprzez zwracanie wartości ujemnej, dodatniej, lub zera, możemy dokładnie kontrolować kolejność elementów w tablicy. Dzięki temu mechanizmowi, metoda sort() jest niezwykle elastyczna i pozwala na sortowanie danych w niemal dowolny sposób.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

