JavaScriptTablice

Array.prototype.sort()

Sortuje elementy tablicy w miejscu i zwraca tę samą tablicę.

Zwraca
Tę samą, posortowaną tablicę.
Zmienia oryginał
Tak
Na tej stronie

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 stawia a przed b.

Więcej przykładów

#
Sortowanie obiektów i polskich napisó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.