Array. prototype. toSpliced()
Usuwa, wstawia lub zastępuje elementy w kopii tablicy. Oryginał zostaje bez zmian.
- Zwraca
- Nową tablicę po zmianach.
- Zmienia oryginał
- Nie
Przykład
#const plan = ['HTML', 'CSS', 'PHP', 'JavaScript']
const updated = plan.toSpliced(2, 1, 'Sass')
console.log(updated)
console.log(plan)Definicja i zastosowanie
#Metoda toSpliced(start, skipCount, ...items) działa jak splice(), ale zamiast zmieniać tablicę, zwraca nową, już przerobioną. Od indeksu start pomija skipCount elementów, a w ich miejsce wstawia podane wartości. Oryginalna tablica się nie zmienia.
Ważna różnica dotyczy wyniku: splice() zwraca tablicę usuniętych elementów, a toSpliced() całą nową tablicę. Jeśli potrzebujesz też usuniętych elementów, odczytaj je wcześniej przez slice().
Jednym wywołaniem usuniesz element (toSpliced(i, 1)), wstawisz nowy bez usuwania (toSpliced(i, 0, x)) albo zamienisz fragment na inne wartości. Ujemny start liczy pozycję od końca. Metoda należy do rodziny metod kopiujących razem z toSorted(), toReversed() i with().
Składnia
#array.toSpliced(start)
array.toSpliced(start, skipCount)
array.toSpliced(start, skipCount, item1, item2, …)Parametry
#start
liczba
Indeks, od którego zaczynają się zmiany. Ujemny liczy od końca.skipCount
opcjonalny
Liczba elementów, które nie trafią do kopii. Pominięty oznacza wszystko odstartdo końca.item1…itemN
opcjonalne
Elementy wstawiane do kopii w miejscustart.
Więcej przykładów
#const queue = ['Ania', 'Kuba', 'Ola']
console.log(queue.toSpliced(1, 1))
console.log(queue.toSpliced(1, 0, 'Zosia'))
console.log(queue.toSpliced(-1))const tasks = ['Quiz', 'Projekt', 'Test']
const copy = tasks.toSpliced(0, 1)
const removed = tasks.splice(0, 1)
console.log(copy)
console.log(removed)
console.log(tasks)toSpliced() oddało nową tablicę i nie ruszyło tasks. Dopiero splice() zmieniło oryginał i zwróciło to, co z niego usunęło.
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
#- Do usunięcia elementu po indeksie, np. w stanie komponentu React, wystarczy
items.toSpliced(index, 1). Nie potrzebujesz kopiowania przez spread anifilter()z porównywaniem indeksów. - Nie myl wyników:
toSpliced()zwraca nową tablicę, asplice()tablicę usuniętych elementów.
Powiązane hasła
#- Array.prototype.splice()Usuwa, zastępuje lub wstawia elementy w miejscu, zmieniając tablicę.
- Array.prototype.slice()Zwraca kopię fragmentu tablicy bez zmieniania oryginału.
- Array.prototype.with()Zwraca kopię tablicy, w której element o podanym indeksie ma nową wartość.
- Array.prototype.toReversed()Zwraca nową tablicę z elementami w odwrotnej kolejności, bez zmiany oryginału.
- Array.prototype.toSorted()Zwraca posortowaną kopię tablicy, nie zmieniając oryginału.
Widzisz błąd albo brakuje przykładu? Napisz do nas.