Die splice()
Methode ändert den Inhalt eines Array durch das Hinzufügen neuer und/oder Entfernen alter Elemente.
Syntax
array.splice(index, deleteCount[, element1[,
element2
[, ...]]])
Parameter
index
- Index ab welchem das Array geändert werden soll. Wenn der Index größer als die Länge des Arrays ist, wird der Index auf die Länge des Arrays gesetzt. Falls der Index negativ ist, beginnt die Änderung entsprechend viele Stellen rückwärts vom Ende des Array.
deleteCount
- Anzahl wie viele alte Array Elemente entfernt werden sollen. Falls
deleteCount
0 ist, werden keine Elemente entfernt. In diesem Fall sollte man mindestens ein neues Element übergeben. FallsdeleteCount
größer ist als die Anzahl Elemente die in dem Array übrig bleiben, beginndend abindex
, dann werden alle Elemente bis zum Ende des Arrays entfernt. - Falls kein
deleteCount
Parameter spezifieziert wird (SpiderMonkey Erweiterung) werden alle Elemente abindex
entfernt. element1, element2, ...
- Die Elemente, die dem Array hinzugefügt werden sollen. Falls keine Elemente angegeben werden, entfernt
splice
einfach Elemente des Array.
Rückgabewert
Ein Array, welches die entfernten Elemente beinhaltet. Falls nur ein Element entfernt wurde, wird dennoch ein Array mit nur einem Element zurückgegeben. Falls keine Elemente entfernt werden wird ein leeres Array zurückgegeben.
Beschreibung
Falls die Anzahl neuer Elemente ungleich der Anzahl entfernter Elemente ist wird die Länge des Arrays geändert.
Beispiele
Zur Benutzung von splice
Das folgende Script zeigt die Benutzung von splice:
var myFish = ['angel', 'clown', 'mandarin', 'surgeon']; // removes 0 elements from index 2, and inserts 'drum' var removed = myFish.splice(2, 0, 'drum'); // myFish is ['angel', 'clown', 'drum', 'mandarin', 'surgeon'] // removed is [], no elements removed // removes 1 element from index 3 removed = myFish.splice(3, 1); // myFish is ['angel', 'clown', 'drum', 'surgeon'] // removed is ['mandarin'] // removes 1 element from index 2, and inserts 'trumpet' removed = myFish.splice(2, 1, 'trumpet'); // myFish is ['angel', 'clown', 'trumpet', 'surgeon'] // removed is ['drum'] // removes 2 elements from index 0, and inserts 'parrot', 'anemone' and 'blue' removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue'); // myFish is ['parrot', 'anemone', 'blue', 'trumpet', 'surgeon'] // removed is ['angel', 'clown'] // removes 2 elements from index 3 removed = myFish.splice(3, myFish.length); // myFish is ['parrot', 'anemone', 'blue'] // removed is ['trumpet', 'surgeon']
Spezifikation
Spezifikation | Status | Kommenter |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. Implemented 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 2017 Draft (ECMA-262) Die Definition von 'Array.prototype.splice' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 1.0 | 1.0 (1.7 oder früher) | 5.5 | (Ja) | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
Abwärtskompatibilität
In JavaScript 1.2 gibt die splice
Methode nur das entfernte Element zurück wenn nur ein Element entfernt wurde (deleteCount
Parameter ist 1); Ansonsten gibt die Methode ein Array zurück wie oben beschrieben.
Hinweis: Der letzte Browser welcher JavaScript 1.2 nutzte, war Netscape Navigator 4, also kann man davon ausgehen, dass splice
immer ein Array zurückgibt. Das ist der Fall, wenn eine JavaScript Objekt eine length
Eigenschaft und eine splice
Methode hat, console.log()
behandelt es als arrayänliches Objekt. Die Prüfung mit instanceof Array
gibt false
zurück.