JavaScriptTablice
Array. prototype. sort()
Sortuje elementy tablicy w miejscu i zwraca tę samą tablicę.
- Zwraca
- Tę samą, posortowaną tablicę.
- Zmienia oryginał
- Tak
Przykład
#JavaScript
const numbers = [10, 9, 1, 25]
console.log([...numbers].sort())
console.log([...numbers].sort((a, b) => a - b))
console.log([...numbers].sort((a, b) => b - a))Konsola
[1, 10, 25, 9]
[1, 9, 10, 25]
[25, 10, 9, 1]
Definicja i zastosowanie
#Metoda sort() układa elementy tablicy według podanej funkcji porównującej. Zmienia oryginał i zwraca referencję do tej samej tablicy.
Bez funkcji porównującej elementy są zamieniane na napisy i sortowane alfabetycznie według kodów znaków. Dlatego [10, 9, 1].sort() daje [1, 10, 9]. Liczby sortuj zawsze z funkcją (a, b) => a - b.
Funkcja porównująca zwraca liczbę ujemną, gdy a ma być przed b, dodatnią, gdy po, i zero, gdy kolejność jest obojętna. Do napisów z polskimi znakami używaj localeCompare().
Składnia
#Składnia
array.sort()
array.sort(compareFn)Parametry
#compareFn
function (a, b)
Funkcja porównująca. Wynik ujemny stawiaaprzedb.
Więcej przykładów
#JavaScript
const students = [
{ name: 'Żaneta', points: 90 },
{ name: 'Ania', points: 120 },
{ name: 'Łukasz', points: 90 }
]
const byName = [...students].sort((a, b) => a.name.localeCompare(b.name, 'pl'))
console.log(byName.map((s) => s.name))Konsola
['Ania', 'Łukasz', 'Żaneta']
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Liczby sortuj zawsze z funkcją
(a, b) => a - b. Domyślne sortowanie traktuje je jak tekst. - Jeśli nie chcesz zmieniać oryginału, użyj
toSorted()albo sortuj kopię[...array].
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.