Baseline Widely available
Die splice()
Methode von Array
Instanzen ändert den Inhalt eines Arrays, indem sie bestehende Elemente entfernt oder ersetzt und/oder neue Elemente in-place hinzufügt.
Um ein neues Array mit einem entfernten und/oder ersetzten Segment zu erstellen, ohne das ursprüngliche Array zu verändern, verwenden Sie toSpliced()
. Um auf einen Teil eines Arrays zuzugreifen, ohne es zu verändern, siehe slice()
.
const months = ["Jan", "March", "April", "June"];
months.splice(1, 0, "Feb");
// Inserts at index 1
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, "May");
// Replaces 1 element at index 4
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "May"]
Syntax
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* â¦, */ itemN)
Parameter
start
Der nullbasierte Index, an dem das Array zu ändern beginnt, umgewandelt in eine Ganzzahl.
-array.length <= start < 0
, wird start + array.length
verwendet.start < -array.length
, wird 0
verwendet.start >= array.length
, wird kein Element gelöscht, aber die Methode verhält sich wie eine Hinzufügemethode und fügt so viele Elemente hinzu, wie bereitgestellt werden.start
ausgelassen wird (und splice()
ohne Argumente aufgerufen wird), wird nichts gelöscht. Dies unterscheidet sich davon, undefined
zu übergeben, das in 0
konvertiert wird.deleteCount
Optional
Eine Ganzzahl, die die Anzahl der Elemente im Array angibt, die ab start
entfernt werden sollen.
Wenn deleteCount
weggelassen wird oder sein Wert gröÃer oder gleich der Anzahl der Elemente nach der durch start
angegebenen Position ist, werden alle Elemente von start
bis zum Ende des Arrays gelöscht. Wenn Sie jedoch einen itemN
-Parameter übergeben möchten, sollten Sie Infinity
als deleteCount
übergeben, um alle Elemente nach start
zu löschen, da ein explizites undefined
konvertiert zu 0
wird.
Wenn deleteCount
0
oder negativ ist, werden keine Elemente entfernt. In diesem Fall sollten Sie mindestens ein neues Element angeben (siehe unten).
item1
, â¦, itemN
Optional
Die Elemente, die dem Array ab start
hinzugefügt werden sollen.
Wenn Sie keine Elemente angeben, wird splice()
nur Elemente aus dem Array entfernen.
Ein Array, das die gelöschten Elemente enthält.
Wenn nur ein Element entfernt wird, wird ein Array mit einem Element zurückgegeben.
Wenn keine Elemente entfernt werden, wird ein leeres Array zurückgegeben.
BeschreibungDie splice()
Methode ist eine verändernde Methode. Sie kann den Inhalt von this
ändern. Wenn die Anzahl der zu einzufügenden Elemente von der Anzahl der zu entfernenden Elemente abweicht, wird die length
des Arrays ebenfalls verändert. Gleichzeitig verwendet es [Symbol.species]
, um eine neue Array-Instanz zu erstellen, die zurückgegeben wird.
Wenn der gelöschte Teil spärlich ist, ist das von splice()
zurückgegebene Array ebenfalls spärlich und weist an den entsprechenden Indizes leere Slots auf.
Die splice()
Methode ist generisch. Sie erwartet lediglich, dass der this
Wert eine length
Eigenschaft und ganzzahlig indizierte Eigenschaften besitzt. Obwohl Strings ebenfalls array-ähnlich sind, eignet sich diese Methode nicht für Strings, da sie unveränderlich sind.
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum");
// myFish is ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed is [], no elements removed
Entfernen von 0 (null) Elementen vor Index 2 und Einfügen von "drum" und "guitar"
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2, 0, "drum", "guitar");
// myFish is ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
// removed is [], no elements removed
Entfernen von 0 (null) Elementen am Index 0 und Einfügen von "angel"
splice(0, 0, ...elements)
fügt Elemente am Anfang des Arrays hinzu wie unshift()
.
const myFish = ["clown", "mandarin", "sturgeon"];
const removed = myFish.splice(0, 0, "angel");
// myFish is ["angel", "clown", "mandarin", "sturgeon"]
// no items removed
Entfernen von 0 (null) Elementen am letzten Index und Einfügen von "sturgeon"
splice(array.length, 0, ...elements)
fügt Elemente am Ende des Arrays hinzu wie push()
.
const myFish = ["angel", "clown", "mandarin"];
const removed = myFish.splice(myFish.length, 0, "sturgeon");
// myFish is ["angel", "clown", "mandarin", "sturgeon"]
// no items removed
Entfernen von 1 Element am Index 3
const myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
const removed = myFish.splice(3, 1);
// myFish is ["angel", "clown", "drum", "sturgeon"]
// removed is ["mandarin"]
Entfernen von 1 Element am Index 2 und Einfügen von "trumpet"
const myFish = ["angel", "clown", "drum", "sturgeon"];
const removed = myFish.splice(2, 1, "trumpet");
// myFish is ["angel", "clown", "trumpet", "sturgeon"]
// removed is ["drum"]
Entfernen von 2 Elementen ab Index 0 und Einfügen von "parrot", "anemone" und "blue"
const myFish = ["angel", "clown", "trumpet", "sturgeon"];
const removed = myFish.splice(0, 2, "parrot", "anemone", "blue");
// myFish is ["parrot", "anemone", "blue", "trumpet", "sturgeon"]
// removed is ["angel", "clown"]
Entfernen von 2 Elementen ab Index 2
const myFish = ["parrot", "anemone", "blue", "trumpet", "sturgeon"];
const removed = myFish.splice(2, 2);
// myFish is ["parrot", "anemone", "sturgeon"]
// removed is ["blue", "trumpet"]
Entfernen von 1 Element ab Index -2
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(-2, 1);
// myFish is ["angel", "clown", "sturgeon"]
// removed is ["mandarin"]
Entfernen aller Elemente ab Index 2
const myFish = ["angel", "clown", "mandarin", "sturgeon"];
const removed = myFish.splice(2);
// myFish is ["angel", "clown"]
// removed is ["mandarin", "sturgeon"]
Verwendung von splice() bei spärlichen Arrays
Die splice()
Methode bewahrt die Sparsamkeit des Arrays.
const arr = [1, , 3, 4, , 6];
console.log(arr.splice(1, 2)); // [empty, 3]
console.log(arr); // [1, 4, empty, 6]
Aufruf von splice() bei Nicht-Array-Objekten
Die splice()
Methode liest die length
Eigenschaft von this
. Sie aktualisiert dann die ganzzahlig indizierten Eigenschaften und die length
Eigenschaft nach Bedarf.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.splice.call(arrayLike, 0, 1, 2, 3));
// [ 5 ]
console.log(arrayLike);
// { '0': 2, '1': 3, '3': 4, length: 4, unrelated: 'foo' }
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4