Array. prototype. toReversed()
Zwraca nową tablicę z elementami w odwrotnej kolejności, bez zmiany oryginału.
- Zwraca
- Nową tablicę z elementami w odwrotnej kolejności.
- Zmienia oryginał
- Nie
Przykład
#const levels = [1, 2, 3, 4]
const reversed = levels.toReversed()
console.log(reversed)
console.log(levels)Definicja i zastosowanie
#Metoda toReversed() tworzy kopię tablicy z elementami ułożonymi od ostatniego do pierwszego. W przeciwieństwie do reverse() nie rusza oryginału, więc możesz bezpiecznie odwracać dane, z których korzysta inna część programu.
Należy do rodziny metod kopiujących, dodanych w standardzie ES2023 razem z toSorted(), toSpliced() i with(). Każda z nich ma mutujący odpowiednik, ale zamiast zmieniać istniejącą tablicę, zwraca nową.
Kopia jest płytka: obiekty w środku nie są klonowane, więc obie tablice wskazują na te same obiekty. Puste miejsca w tablicach rzadkich zamieniają się w kopii na undefined.
Składnia
#array.toReversed()Więcej przykładów
#const history = ['Lekcja 1', 'Lekcja 2', 'Lekcja 3']
const newestFirst = history.toReversed()
console.log(newestFirst[0])
console.log(history[0])
history.reverse()
console.log(history[0])const students = [{ name: 'Ania' }, { name: 'Kuba' }]
const reversed = students.toReversed()
reversed[0].name = 'Jakub'
console.log(students[1].name)
console.log(reversed === students)Tablice są różne, ale obiekt Kuby jest w obu ten sam. Zmianę jego pola w kopii widać więc także w oryginale.
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 komponentów React używaj
toReversed()zamiastreverse(). Zmiana oryginalnej tablicy w stanie to częsta przyczyna widoku, który się nie odświeża. - W starszym kodzie ten sam efekt dają
[...array].reverse()iarray.slice().reverse().
Powiązane hasła
#- Array.prototype.reverse()Odwraca kolejność elementów tablicy w miejscu.
- Array.prototype.toSorted()Zwraca posortowaną kopię tablicy, nie zmieniając oryginału.
- Array.prototype.toSpliced()Usuwa, wstawia lub zastępuje elementy w kopii tablicy. Oryginał zostaje bez zmian.
- Array.prototype.with()Zwraca kopię tablicy, w której element o podanym indeksie ma nową wartość.
Widzisz błąd albo brakuje przykładu? Napisz do nas.