Wycinanie i zastępowanie elementów tablicy - splice
W jaki sposób wyciąć część elementów tablicy i zastąpić je innymi?
Array.prototype.splice() Array.prototype.splice(start, deleteCount) Array.prototype.splice(start, deleteCount, item1) Array.prototype.splice(start, deleteCount, item1, item2...)
- Parametry:
Number
start - indeks elementu początkowegoNumber
deleteCount - ile kolejnych elementów usunąć bądź podmienić- item1, item2... - lista elementów na podmianę
- Wartość:
Array
- wycięte elementy
Tworzy nową tablicę, będącą wycinkiem, składający się z kolejnych elementów poczynając od tego, na który wskazuje indeks start i zawierającym tyle elementów, na ile wskazuje argument deleteCount. Następnie w miejsce wycinka są wstawiane elementy, określone argumentami: item1, item2..., a jeżeli ich nie podamy, wycinek po prostu jest usuwany z oryginalnej tablicy.
- Jeżeli do funkcji nie zostaną przekazane żadne argumenty, będzie zwrócona pusty wycinek, a oryginalna tablica nie ulegnie zmianie.
- Jeżeli wartość argumentu start będzie mniejsza od zera, odliczanie indeksu rozpocznie się od końca tablicy.
Array.prototype.splice
- inaczej niż funkcja Array.prototype.slice - zmienia oryginalną tablicę.
Przykład Array.prototype.splice
var items = [1, 2, 3, 4, 5]; items.splice(); // [] items; // [1, 2, 3, 4, 5] items.slice(0, 0); // [] items; // [1, 2, 3, 4, 5] items.splice(1, 2); // [2, 3] items; // [1, 4, 5] items.splice(1, 0, 2, 3); // [] items; // [1, 2, 3, 4, 5] items.splice(-2, 2); // [4, 5] == items.splice(3, 2); items; // [1, 2, 3] items.splice(1, 1, [2.1, 2.2]); // [2] items; // [1, [2.1, 2.2], 3] items.splice(1, 10, 2, 3, 4, 5); // [[2.1, 2.2], 3] items; // [1, 2, 3, 4, 5]