JavaScriptTablice

Array.prototype.toSorted()

Zwraca posortowaną kopię tablicy, nie zmieniając oryginału.

Zwraca
Nową, posortowaną tablicę.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
const prices = [79, 49, 59]
const sorted = prices.toSorted((a, b) => a - b)

console.log(sorted)
console.log(prices)
Konsola
[49, 59, 79]
[79, 49, 59]

Definicja i zastosowanie

#

Metoda toSorted() działa jak sort(), ale zamiast sortować tablicę w miejscu, zwraca nową, posortowaną tablicę. Oryginał zostaje taki sam.

To wygodne w kodzie, który unika mutacji, na przykład w stanie komponentów React, gdzie zmiana oryginalnej tablicy potrafi spowodować trudne do wykrycia błędy.

Należy do rodziny metod „kopiujących”, razem z toReversed(), toSpliced() i with(). Funkcję porównującą podajesz tak samo jak w sort().

Składnia

#
Składnia
array.toSorted()
array.toSorted(compareFn)

Parametry

#
  • compareFn

    function (a, b)

    Funkcja porównująca, jak w sort().

Więcej przykładów

#
Rodzina metod kopiujących
JavaScript
const steps = ['a', 'b', 'c']

console.log(steps.toReversed())
console.log(steps.with(1, 'B'))
console.log(steps.toSpliced(0, 1))
console.log(steps)
Konsola
['c', 'b', 'a']
['a', 'B', 'c']
['b', 'c']
['a', 'b', 'c']

Obsługa przeglądarek

#

Szeroko dostępne · od 2023 roku

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • W stanie aplikacji preferuj toSorted() zamiast sort(). Unikniesz przypadkowej mutacji danych.
  • W starszym kodzie ten sam efekt daje [...array].sort(...).

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.