Przejdź do treści

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ątkowego
Number 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]

Komentarze

Zobacz więcej komentarzy

Facebook