Array.prototype.toSpliced()
Baseline
2023
Newly available
Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die toSpliced()-Methode von Array-Instanzen ist die kopierende Version der splice()-Methode. Sie gibt ein neues Array zurück, bei dem einige Elemente an einem bestimmten Index entfernt und/oder ersetzt wurden.
Syntax
toSpliced(start)
toSpliced(start, skipCount)
toSpliced(start, skipCount, item1)
toSpliced(start, skipCount, item1, item2)
toSpliced(start, skipCount, item1, item2, /* …, */ itemN)
Parameter
start-
Nullbasierter Index, ab dem das Array geändert werden soll, in eine ganze Zahl umgewandelt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= start < 0, wirdstart + array.lengthverwendet. - Es wird
0verwendet, wennstart < -array.lengthoderstartweggelassen wird. - Wenn
start >= array.length, wird kein Element gelöscht, jedoch verhält sich die Methode als Hinzufügungsfunktion und fügt so viele Elemente hinzu, wie übergeben werden.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
skipCountOptional-
Eine ganze Zahl, die angibt, wie viele Elemente im Array ab
startentfernt (oder übersprungen) werden sollen.Wenn
skipCountweggelassen wird oder sein Wert größer oder gleich der Anzahl der Elemente nach der durchstartangegebenen Position ist, werden alle Elemente vonstartbis zum Ende des Arrays gelöscht. Wenn Sie jedoch einenitemN-Parameter übergeben möchten, sollten SieInfinityalsskipCountübergeben, um alle Elemente nachstartzu löschen, da ein explizitesundefinedin0umgewandelt wird.Wenn
skipCount0oder negativ ist, werden keine Elemente entfernt. In diesem Fall sollten Sie mindestens ein neues Element angeben (siehe unten). item1, …,itemNOptional-
Die Elemente, die dem Array ab
starthinzugefügt werden.Wenn Sie keine Elemente angeben, entfernt
toSpliced()nur Elemente aus dem Array.
Rückgabewert
Ein neues Array, das aus allen Elementen vor start, item1, item2, …, itemN und allen Elementen nach start + skipCount besteht.
Beschreibung
Die toSpliced()-Methode, wie splice(), führt mehrere Aktionen gleichzeitig aus: Sie entfernt eine bestimmte Anzahl von Elementen aus dem Array, beginnend an einem bestimmten Index, und fügt dann die angegebenen Elemente am gleichen Index wieder ein. Jedoch zurückgegeben wird ein neues Array, und das ursprüngliche Array wird nicht verändert. Die gelöschten Elemente werden daher nicht über diese Methode zurückgegeben, bleiben jedoch im ursprünglichen Array zugänglich.
Die toSpliced()-Methode erzeugt niemals ein sparses Array. Wenn das Quellarray sparsam ist, werden die leeren Plätze im neuen Array durch undefined ersetzt.
Die toSpliced()-Methode ist generisch. Sie erwartet nur, dass der this-Wert eine length-Eigenschaft und integer-indizierte Eigenschaften hat.
Beispiele
>Löschen, Hinzufügen und Ersetzen von Elementen
Sie können toSpliced() verwenden, um Elemente in einem Array zu löschen, hinzuzufügen und zu ersetzen, und ein neues Array effizienter zu erstellen als mit slice() und concat().
const months = ["Jan", "Mar", "Apr", "May"];
// Inserting an element at index 1
const months2 = months.toSpliced(1, 0, "Feb");
console.log(months2); // ["Jan", "Feb", "Mar", "Apr", "May"]
// Deleting two elements starting from index 2
const months3 = months2.toSpliced(2, 2);
console.log(months3); // ["Jan", "Feb", "May"]
// Replacing one element at index 1 with two new elements
const months4 = months3.toSpliced(1, 1, "Feb", "Mar");
console.log(months4); // ["Jan", "Feb", "Mar", "May"]
// Original array is not modified
console.log(months); // ["Jan", "Mar", "Apr", "May"]
Verwendung von toSpliced() bei sparsen Arrays
Die toSpliced()-Methode erzeugt immer ein dichtes Array.
const arr = [1, , 3, 4, , 6];
console.log(arr.toSpliced(1, 2)); // [1, 4, undefined, 6]
Aufrufen von toSpliced() bei Nicht-Array-Objekten
Die toSpliced()-Methode liest die length-Eigenschaft von this. Sie liest dann die erforderlichen integer-indizierten Eigenschaften und schreibt sie in das neue Array.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
};
console.log(Array.prototype.toSpliced.call(arrayLike, 0, 1, 2, 3));
// [2, 3, undefined, 4]
Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.tospliced> |
Browser-Kompatibilität
Loading…