Ogólny zarys

Dzięki wbudowanej w obiekt Array metodzie spliece() można szybko i łatwo usuwać element lub elementy z tablicy oraz dodawać elementy w miejsce usuniętych.

Dobrą wiadomością jest, że metoda działa we wszystkich znaczących przeglądarkach (nawet IE).

Ogólny zapis metody:

splice(index, ile, [,el1, el2, … , elN]);

gdzie:

index – oznacza indeks elementu, od którego chcemy zacząć usuwanie

ile – ile elementów ma być usuniętych

el1, el2, … , elN – każdy kolejny element będzie dodany w miejsce usuwanych elementów

Metoda zwraca tablicę z usuniętymi elementami.

Usuwanie elementów z tablicy

Usuwanie jednego elementu

var arr = ["pierwszy", "drugi", "trzeci"];
arr.splice(1, 1);
arr;

[„pierwszy”, „trzeci”]

Usuwanie paru elementów

var arr = ["pierwszy", "drugi", "trzeci", "czwarty", "(...)", "setny"];
arr.splice(1, 3);
arr;

[„pierwszy”, „(…)”, „setny”]

Wstawianie elementów do tablicy w miejsce usuwanego

var arr = ["pierwszy", "drugi", "trzeci"];
arr.splice(1, 1, "drugi pierwszy", "drugi drugi", "drugi trzeci");
arr;

[„pierwszy”, „drugi pierwszy”, „drugi drugi”, „drugi trzeci”, „trzeci”]

var arr = ["pierwszy", "drugi", "trzeci"];
arr.splice(1, 2, "drugi pierwszy", "drugi drugi", "drugi trzeci");
arr;

[„pierwszy”, „drugi pierwszy”, „drugi drugi”, „drugi trzeci”]

Zastępowanie elementu w tablicy

W zasadzie nie ma sensu zastępować element za pomocą tej metody. Oczywiście można, ale głębszego sensu nie ma:

var arr = ["pierwszy", "drugi", "trzeci"];
arr.splice(1, 1, 2);
arr;

[„pierwszy”, 2, „trzeci”]

Jest równoważne z:

var arr = ["pierwszy", "drugi", "trzeci"];
arr[1] = 2;
arr;

[„pierwszy”, 2, „trzeci”]

Wpychanie paru elementów

Ciekawym zastosowaniem może być wepchnięcie w tablicę elementów:

var arr = ["pierwszy", "drugi", "trzeci"];
arr.splice(2, 0, "drugi pierwszy", "drugi drugi", "drugi trzeci");
arr;

[„pierwszy”, „drugi”, „drugi pierwszy”, „drugi drugi”, „drugi trzeci”, „trzeci”]

Konkluzja

Wniosek jest prosty: metoda splice() jest niezwykle potężna i przydatna. Przykładowo w projekcie, nad którym pracuję używam jej do usuwania elementów ze struktury danych. Myślę, że znajdziesz niejedne jej zastosowanie 😉