JS_03_sortowanie.md

#03_sortowanie

#Rosnąco

JSconst liczby = [5,1,8,2];

liczby.sort((a,b) => a - b);

#Malejąco

JSconst liczby = [5,1,8,2];

liczby.sort((a,b) => b - a);

#Tekst A-Z

JSconst imiona = ["Kuba","Adam","Ola"];

imiona.sort();

#Tekst Z-A

JSconst imiona = ["Kuba","Adam","Ola"];

imiona.sort().reverse();

#Obiekty po cenie

JSconst produkty = [
 {nazwa:"Monitor", cena:700},
 {nazwa:"Myszka", cena:50},
 {nazwa:"Klawiatura", cena:120}
];

produkty.sort(
 (a,b) => a.cena - b.cena
);

#Obiekty po nazwie

JSprodukty.sort(
 (a,b) => a.nazwa.localeCompare(b.nazwa)
);

#React sortowanie produktów

REACTconst [produkty, setProdukty] = useState([...]);

function sortujRosnaco() {
 const posortowane = [...produkty].sort(
   (a,b) => a.cena - b.cena
 );

 setProdukty(posortowane);
}

#Sortowanie po wieku

JSconst osoby = [
 {imie:"Kuba", wiek:18},
 {imie:"Adam", wiek:25},
 {imie:"Ola", wiek:16}
];

osoby.sort(
 (a,b) => a.wiek - b.wiek
);

#Sortowanie dat

JSconst daty = [
 "2025-01-01",
 "2024-03-15",
 "2026-07-20"
];

daty.sort(
 (a,b) => new Date(a) - new Date(b)
);

#Sortowanie + filter + map

JSconst produkty = [
 {nazwa:"Myszka", cena:50},
 {nazwa:"Monitor", cena:700},
 {nazwa:"Klawiatura", cena:120}
];

const wynik = produkty
 .filter(x => x.cena > 100)
 .sort((a,b) => a.cena - b.cena)
 .map(x => x.nazwa);

#Egzaminowy przykład

JSconst osoby = [
 {imie:"Kuba", punkty:80},
 {imie:"Adam", punkty:40},
 {imie:"Ola", punkty:95}
];

const wynik = osoby
 .sort((a,b) => b.punkty - a.punkty);

console.log(wynik);