Array.prototype.splice()
Die splice()
Methode ändert den Inhalt eines Arrays durch das Entfernen vorhandener Elemente und/oder Hinzufügen neuer Elemente.
Syntax
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
Parameter
start
- Index ab welchem das Array geändert werden soll. Falls
start
größer als die Länge des Arrays ist, wirdstart
auf die Länge des Arrays gesetzt. - Falls
start
negativ ist, beginnt die Änderung entsprechend viele Stellen rückwärts vom Ende des Arrays (d.h. hatstart
den Wert -n ist dies gleichbedeutend mitarray.length - n
) und wird auf 0 gesetzt wenn der absolute Wert vonstart
größer als die Länge des Arrays ist. deleteCount
Optional- Gibt die Anzahl der zu entfernenden alten Array Elemente an.
- Wenn
deleteCount
weggelassen wird oder wenn der Wert größer oder gleicharray.length - start
ist (d. h. wenn der Wert größer oder gleich der Anzahl der vonstart
aus verbleibenden Elemente ist), wird das ganze Array ab dem Indexstart
gelöscht. - Wenn
deleteCount
0 oder negativ ist, werden keine Elemente entfernt. In diesem Fall sollte man mindestens ein neues Element als weiteren Parameter übergeben, da das Array sonst nicht geändert wird. item1, item2, ...
Optional- Die Elemente, die dem Array ab dem Index
start
hinzugefügt werden sollen. Falls keine Elemente angegeben werden, entferntsplice
lediglich Elemente des Arrays.
Rückgabewert
Ein Array, welches die entfernten Elemente enthält. Wenn nur ein Element entfernt wurde, wird ein Array mit nur einem Element zurückgegeben. Wenn kein Element entfernt wurde, wird ein leeres Array zurückgegeben.
Beschreibung
Wenn die Anzahl der neu hinzugefügten Elemente ungleich der Anzahl der entfernten Elemente ist, wird die Länge des Arrays geändert. Bei gleicher Anzahl werden vorhandene Elemente sozusagen ersetzt.
Beispiele
Entfernen von 0 (null) Elementen bei Index 2 und Einfügen von "drum"
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum');
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed is [], no elements removed
Entfernen von o (null) Elementen bei Index 2 und Einfügen von "drum" und "guitar"
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2, 0, 'drum', 'guitar');
// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed
Entfernen von 1 Element bei Index 3
var myFish = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon'];
var removed = myFish.splice(3, 1);
// removed is ["mandarin"]
// myFish is ["angel", "clown", "drum", "sturgeon"]
Entfernen von 1 Element bei Index 2 und Einfügen von "trumpet"
var myFish = ['angel', 'clown', 'drum', 'sturgeon'];
var removed = myFish.splice(2, 1, 'trumpet');
// myFish is ["angel", "clown", "trumpet", "sturgeon"]
// removed is ["drum"]
Entfernen von 2 Elementen bei Index 0 und Einfügen von "parrot", "anemone" und "blue"
var myFish = ['angel', 'clown', 'trumpet', 'sturgeon'];
var removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed is ["angel", "clown"]
Entfernen von 2 Elementen vom Index 2
var myFish = ['parrot', 'anemone', 'blue', 'trumpet', 'sturgeon'];
var removed = myFish.splice(myFish.length - 3, 2);
// myFish is ["parrot", "anemone", "sturgeon"]
// removed is ["blue", "trumpet"]
Entfernen von einem Element bei Index -2
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(-2, 1);
// myFish is ["angel", "clown", "sturgeon"]
// removed is ["mandarin"]
Entfernen von allen Elementen nach Index 2 (inklusiv)
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.splice(2);
// myFish is ["angel", "clown"]
// removed is ["mandarin", "sturgeon"]
Spezifikationen
Spezifikation | Status | Kommenter |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initiale Definition. Implementiert in JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Array.prototype.splice' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Array.prototype.splice' in dieser Spezifikation. |
Standard | |
ECMAScript (ECMA-262) Die Definition von 'Array.prototype.splice' in dieser Spezifikation. |
Lebender Standard |
Browserkompatibilität
BCD tables only load in the browser