JavaScript/Objekte/Array/splice
Die Methode splice entfernt Elemente aus einem Array und fügt neue Elemente ein.
Syntax
Array.splice(position [, anzahl [, element0, ..., elementN] ])
Folgende Angaben sind möglich:
position
: die Position im Array, an der Elemente gelöscht und eingefügt werden sollen. Ist dieser Wert negativ, dann wird vom Ende des Arrays aus gezählt.anzahl
: die Anzahl der zu löschenden Elementeelement0, ..., elementN
: die neuen Elemente, die an der Position eingefügt werden sollen
Rückgabewert ist ein Array mit den entfernten Elementen.
Beschreibung
Um neue Elemente einzufügen, ist es erforderlich, die Anzahl der zu löschenden Elemente anzugeben. Sollen keine Elemente gelöscht werden, dann sollte hier 0
(Null) stehen. Wenn die Methode nur mit dem ersten Parameter position
aufgerufen wird, dann werden alle Elemente ab dieser Position gelöscht, das Element an dieser Position mit einbegriffen.
var a = new Array("a", "b", "c", "d", "e", "f");
alert(a); // "a,b,c,d,e,f"
/* --- 1 --- */
a.splice(2, 0, "X", "Y");
alert(a); // "a,b,X,Y,c,d,e,f"
/* -- 2 --- */
a.splice(4, 3, "Z");
alert(a); // "a,b,X,Y,Z,f"
/* --- 3 --- */
a.splice(-1, 5, "#");
alert(a); // "a,b,X,Y,Z,#"
/* --- 4 --- */
a.splice(-1);
alert(a); // "a,b,X,Y,Z"
/* --- 5 --- */
a.splice(1);
alert(a); // "a"
- --- 1 ---
- an die Stelle 2 (Zählung beginnt bei Null!) werden die Elemente "X" und "Y" eingefügt
- --- 2 ---
- beginnend ab der Stelle 4 werden 3 Elemente ("c", "d", "e") gelöscht und das Element "Z" eingefügt
- --- 3 ---
- beginnend ab der letzten Stelle sollen 5 Elemente gelöscht werden, davon gibt es jedoch nur eins ("f")
- das Element "#" wird an die letzte Stelle gesetzt
- --- 4 ---
- ab der letzten Stelle werden alle Elemente gelöscht ("#")
- --- 5 ---
- beginnend ab der Stelle 1 (Zählung beginnt bei Null!) werden alle Elemente gelöscht
Der Parameter position
bezieht sich auf einen auf 0
(Null) basierenden Index des Arrays. Das bedeutet, das erste Element im Array hat die Position 0
(Null). Wird der Index im Array durch eine negative Positionsangabe ermittelt, dann entspricht die Position -1
dem letzten Eintrag im Array und die Position -2
dem vorletzten Eintrag. Es wird einfach vom Ende aus gezählt.
position
bedeutet nicht, dass die Elemente dann auch vor der Position eingefügt oder gelöscht werden. Ein negativer Positionswert ist nur für die Bestimmung des Index von Bedeutung und hat sonst keinerlei Auswirkungen.Weblinks
- ECMAScript 2015 (6th Edition, ECMA-262): Array.prototype.splice()
- MDN: Array.prototype.splice()