Metoda splice
Metoda splice usuwa lub dodaje
elementy do tablicy. Można tylko usuwać elementy,
tylko dodawać lub robić i jedno, i drugie
jednocześnie. Metoda jest bardzo uniwersalna i
skomplikowana do zrozumienia.
Metoda modyfikuje samą tablicę i zwraca przy
tym tablicę usuniętych elementów.
Pierwszym parametrem metoda przyjmuje numer elementu
tablicy, który trzeba usunąć. Drugim parametrem
- ile elementów tablicy należy usunąć.
Jeśli ustawimy go na 0 - to elementy nie zostaną
usunięte (tylko dodane nowe).
Dalej, po przecinku, podaje się elementy, które
trzeba dodać do tablicy (są parametrami opcjonalnymi).
Te elementy zostaną dodane w miejsce
usuniętych elementów tablicy.
Jeśli usuwanie nie nastąpiło (gdy drugi parametr
to 0) - elementy zostaną wstawione do tablicy zaczynając
od tej pozycji, która jest określona pierwszym parametrem
metody. Pierwszy parametr może mieć wartość ujemną.
W tym przypadku odliczanie pozycji zacznie się
nie od początku tablicy, ale od końca. Ostatni element
będzie wtedy miał numer -1.
Składnia
tablica.splice(skąd usuwamy, ile usuwamy, [wstawić], [wstawić]...);
Przykład
Usuńmy trzy elementy, zaczynając od pierwszego:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(1, 3);
console.log(arr);
Wynik wykonania kodu:
['a', 'e']
Przykład
Wypiszmy tablicę usuniętych elementów:
let arr = ['a', 'b', 'c', 'd', 'e'];
let del = arr.splice(1, 3);
console.log(del);
Wynik wykonania kodu:
['b', 'c', 'd']
Przykład
Najpierw usuńmy element z numerem
2, a potem zamiast niego wstawmy jeszcze
trzy nowe elementy:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 1, '1', '2', '3');
console.log(arr);
Wynik wykonania kodu:
['a', 'b', '1', '2', '3', 'd', 'e']
Przykład
Teraz nic nie usuwajmy, ale
na pozycję 2, wstawmy jeszcze trzy nowe
elementy:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(2, 0, '1', '2', '3');
console.log(arr);
Wynik wykonania kodu:
['a', 'b', '1', '2', '3', 'c', 'd', 'e']
Przykład . Wartość ujemna
Usuńmy przedostatni element:
let arr = ['a', 'b', 'c', 'd', 'e'];
arr.splice(-2, 1);
console.log(arr);
Wynik wykonania kodu:
['a', 'b', 'c', 'e']