Tablice: Sortowanie i Odwracanie
Zadanie 4.6: Sortowanie
Wstęp
Ułożenie danych alfabetycznie lub od najmniejszej do największej to standard. W JavaScript służy do tego metoda .sort(). Ma ona jednak pewien "haczyk", o którym musisz wiedzieć.
Cel zadania
Poprawne sortowanie tablic z napisami oraz (co ważniejsze) tablic z liczbami.
Problem sortowania liczb
Domyślnie .sort() traktuje wszystko jak tekst.
Porównując teksty, "100" jest mniejsze niż "2", bo "1" < "2".
const numbers = [2, 100, 5];
numbers.sort();
console.log(numbers); // Wynik: [100, 2, 5] - BŁĄD! (Sortowanie leksykograficzne)
Aby to naprawić, musimy podać funkcję porównującą:
// Sortowanie rosnące (a - b)
numbers.sort((a, b) => a - b);
console.log(numbers); // [2, 5, 100] - OK!
// Sortowanie malejące (b - a)
numbers.sort((a, b) => b - a);
[!WARNING] Metoda
.sort()mutuje tablicę (zmienia oryginał). Jeśli chcesz zachować oryginał, zrób najpierw kopię (np.[...tablica].sort()).
Kroki do wykonania
1. Sortowanie imion (Tekst)
Stwórz tablicę imion: ["Zenon", "Adam", "Monika"].
Posortuj ją alfabetycznie i wypisz.
2. Sortowanie wyników (Liczby)
Stwórz tablicę punktów: [1000, 5, 200, 33].
Posortuj ją malejąco (od najlepszego wyniku). Pamiętaj o funkcji porównującej (a, b) => b - a.
3. Odwracanie kolejności
Metoda .reverse() odwraca tablicę (pierwszy element staje się ostatnim).
Użyj jej na posortowanej wcześniej tablicy imion.
Zadanie dla chętnych: Sortowanie obiektów
Masz listę produktów:
const products = [
{ name: "Laptop", price: 3000 },
{ name: "Myszka", price: 50 },
{ name: "Klawiatura", price: 150 }
];
Posortuj ją według ceny rosnąco.
Wskazówka: products.sort((a, b) => a.price - b.price).
[!IMPORTANT] Commit: Zadanie 4.6 - Sortowanie liczb i stringów.