JavaScriptTablice
Array. prototype. splice()
Usuwa, zastępuje lub wstawia elementy w miejscu, zmieniając tablicę.
- Zwraca
- Tablicę usuniętych elementów (może być pusta).
- Zmienia oryginał
- Tak
Przykład
#JavaScript
const list = ['HTML', 'CSS', 'PHP', 'JavaScript']
const removed = list.splice(2, 1)
console.log(removed)
console.log(list)
list.splice(1, 0, 'Sass')
console.log(list)Konsola
['PHP']
['HTML', 'CSS', 'JavaScript']
['HTML', 'Sass', 'CSS', 'JavaScript']
Definicja i zastosowanie
#Metoda splice(start, deleteCount, ...items) zmienia oryginalną tablicę. Od indeksu start usuwa deleteCount elementów, a w ich miejsce wstawia podane nowe elementy. Zwraca tablicę usuniętych elementów.
Jednym wywołaniem możesz więc usunąć element (splice(i, 1)), wstawić nowy bez usuwania (splice(i, 0, x)) albo zamienić fragment na inne wartości.
Jeśli nie chcesz mutować danych, użyj nowszej metody toSpliced(), która działa tak samo, ale zwraca nową tablicę.
Składnia
#Składnia
array.splice(start)
array.splice(start, deleteCount)
array.splice(start, deleteCount, item1, item2, …)Parametry
#start
liczba
Indeks, od którego zaczynają się zmiany. Ujemny liczy od końca.deleteCount
opcjonalny
Liczba elementów do usunięcia. Pominięta oznacza usunięcie wszystkiego do końca.item1…itemN
opcjonalne
Elementy do wstawienia w miejscustart.
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
#- Do usuwania elementu po warunku częściej lepszy jest
filter(), który nie mutuje tablicy. - Nie usuwaj elementów przez
splice()w pętli idącej od początku, bo indeksy się przesuwają. Idź od końca albo użyjfilter().
Powiązane hasła
#- Array.prototype.slice()Zwraca kopię fragmentu tablicy bez zmieniania oryginału.
- Array.prototype.findIndex()Zwraca indeks pierwszego elementu spełniającego warunek albo -1.
- Array.prototype.filter()Tworzy nową tablicę z elementami, dla których funkcja zwróciła true.
- Array.prototype.push()Dodaje elementy na koniec tablicy i zwraca jej nową długość.
- Array.prototype.toSpliced()Usuwa, wstawia lub zastępuje elementy w kopii tablicy. Oryginał zostaje bez zmian.
Widzisz błąd albo brakuje przykładu? Napisz do nas.